From 367c5089a5ab7ab3ad53d8f7f1929a02cc73e009 Mon Sep 17 00:00:00 2001 From: Suriya Date: Wed, 20 May 2026 16:46:17 +0530 Subject: [PATCH] express --- Get Api's.txt | 184 -- Post, put and delete Api's.txt | 652 ------- Xpress_api_get_docs.md | 450 +++++ Xpress_api_write_docs.md | 1081 +++++++++++ index.html | 2 +- src/components/Introduction.jsx | 2 +- src/components/Sidebar.jsx | 2 +- src/data/topics.js | 3180 +++++++++++++++++++------------ 8 files changed, 3461 insertions(+), 2092 deletions(-) delete mode 100644 Get Api's.txt delete mode 100644 Post, put and delete Api's.txt create mode 100644 Xpress_api_get_docs.md create mode 100644 Xpress_api_write_docs.md diff --git a/Get Api's.txt b/Get Api's.txt deleted file mode 100644 index ca70c6e..0000000 --- a/Get Api's.txt +++ /dev/null @@ -1,184 +0,0 @@ -๐Ÿ‘ค Users & Authorization GET APIs -http - - -# Get all users (Web) -https://fiesta.nearle.app/live/api/v1/web/users/getallusers?roleid=2&tenantid=8&pageno=1&pagesize=10&keyword=john -# Get a specific user profile by ID (Web) -https://fiesta.nearle.app/live/api/v1/web/users/getusers?userid=12 -# Get a specific user profile by ID (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/users/getusers?userid=15 -๐Ÿ‘ฅ Customer Management GET APIs -http - - -# Fetch customer profile by ID or Contact (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/customers/getbyid?customerid=4082&contactno=9876543210 -# Get customer saved address locations (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/customers/getcustomerlocation?customerid=4082 -# Get customer logged support requests (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/customers/getcustomerrequests?customerid=4082&pageno=1&pagesize=10 -# Search customer names under a tenant (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/customers/search?keyword=Jane&tenantid=8 -# Retrieve customers linked to a tenant location (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/customers/gettenantcustomers?tenantid=8&locationid=2&pageno=1&pagesize=10 -# Retrieve merchant customers list (Web) -https://fiesta.nearle.app/live/api/v1/web/customers/gettenantcustomers?tenantid=8&locationid=2&pageno=1&pagesize=10&keyword=jane -๐Ÿ“ฆ Product & Catalog GET APIs -http - - -# Get product subcategories (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getproductsubcategories?categoryid=2&tenantid=8 -# Get products stock counts (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getproductscount?tenantid=8&categoryid=2&subcategoryid=12&approve=1 -# Get all global categories (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getproductcategories -# Get specific product variants (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getproductvariants?tenantid=8&subcategoryid=12 -# Get master catalog listings (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getcatalougeproducts?tenantid=8&locationid=2&subcategoryid=12&keyword=&pageno=1&pagesize=10 -# Get live stocks catalog (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getproductstocks?tenantid=8&locationid=2 -# Get dynamic stock statement ledger (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getstockstatement?tenantid=8&locationid=2&subcategoryid=12&pageno=1&pagesize=10&keyword= -# Get outlet geofenced inventory (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getlocationproducts?tenantid=8&locationid=2&subcategoryid=12&pageno=1&pagesize=10 -# Get outlet category inventory summary (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getlocationproductsummary?tenantid=8&locationid=2 -# Master products search board (Web) -https://fiesta.nearle.app/live/api/v1/web/products/getallproducts?tenantid=8&locationid=2&keyword=milk&pageno=1&pagesize=10 -# Get product details by variant ID (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/products/getproductbyvariant?tenantid=8&variantid=4 -# Get product subcategories (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/products/getproductsubcategories?categoryid=2&tenantid=8 -# Search product catalog (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/products/getallproducts?keyword=milk&pageno=1&pagesize=10 -# Get structured home subcategory list (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/products/getproductsbysubcategory?categoryid=2&tenantid=8&locationid=2 -# Get mobile geofenced outlet products (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/products/getlocationproducts?tenantid=8&locationid=2&pageno=1&pagesize=20 -๐Ÿ“‹ Order Orchestration GET APIs -http - - -# Filtered dynamic orders board (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/getorders?tenantid=8&locationid=2&status=processing&pageno=1&pagesize=10 -# Tenant orders board (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/tenant/getorders?tenantid=8&locationid=2&status=processing&pageno=1&pagesize=10 -# Partner fleet orders board (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/partner/getorders?partnerid=1&status=processing&pageno=1&pagesize=10 -# Individual consumer invoice histories (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/customer/getorders?customerid=4082&status=delivered&pageno=1&pagesize=10 -# Operator/User orders board (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/user/getorders?appuserid=12&status=processing&pageno=1&pagesize=10 -# System Admin orders board (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/admin/getorders?applocationid=1&status=processing&pageno=1&pagesize=10 -# Get order dashboard stats summary (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/getordersummary?tenantid=8&fromdate=2026-05-01&todate=2026-05-20 -# Get location orders summary (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/getlocationsummary?tenantid=8 -# Get annual orders insights analytics (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/getorderinsight?tenantid=8 -# Get order detailed lines (Web) -https://fiesta.nearle.app/live/api/v1/web/orders/getorderdetails?orderheaderid=2099 -# Get customer order history (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/orders/getcustomerorders?customerid=4082&pageno=1&pagesize=10 -# Get specific tenant store orders (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/orders/tenant/getorders?tenantid=8&locationid=2&pageno=1&pagesize=10 -# Get mobile order detailed lines (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/orders/getorderdetails?orderheaderid=2099 -๐Ÿ๏ธ Partner & Rider GET APIs -http - - -# Get active riders (Web) -https://fiesta.nearle.app/live/api/v1/web/partners/getriders?partnerid=1&applocationid=1&userid=12&tenantid=8 -# Get partner profiles (Web) -https://fiesta.nearle.app/live/api/v1/web/partners/getpartners?partnerid=1&applocationid=1&userid=12 -# Get rider shifts (Web) -https://fiesta.nearle.app/live/api/v1/web/partners/getridershifts?applocationid=1 -# Get location configurations (Web) -https://fiesta.nearle.app/live/api/v1/web/partners/getlocations?userid=12&configid=1 -# Get rider log sheet (Web) -https://fiesta.nearle.app/live/api/v1/web/partners/getriderlogs?partnerid=1&applocationid=1&fromdate=2026-05-20&todate=2026-05-20 -# Get partner profiles (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/partners/getpartners?partnerid=1&applocationid=1&userid=12 -# Get rider log sheet (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/partners/getriderlogs?partnerid=1&applocationid=1&fromdate=2026-05-20&todate=2026-05-20 -# Get rider operational info (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/partners/getriderinfo?userid=15 -# Get active riders list (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/partners/getriders?partnerid=1&applocationid=1&userid=15&tenantid=8 -๐Ÿšš Logistics & Deliveries GET APIs -http - - -# Get deliveries performance summaries (Web) -https://fiesta.nearle.app/live/api/v1/web/deliveries/deliverysummary?tenantid=8&partnerid=1&userid=12&applocationid=1&locationid=2&fromdate=2026-05-20&todate=2026-05-20 -# Get daily delivery insights (Web) -https://fiesta.nearle.app/live/api/v1/web/deliveries/getdeliveryinsight?tenantid=8 -# Get location deliveries summary (Web) -https://fiesta.nearle.app/live/api/v1/web/deliveries/getlocationsummary?tenantid=8 -# Get deliveries financial report summary (Web) -https://fiesta.nearle.app/live/api/v1/web/deliveries/getreportsummary?tenantid=8&partnerid=1&userid=12&applocationid=1&fromdate=2026-05-01&todate=2026-05-20 -# Get fleet rider summary metrics (Web) -https://fiesta.nearle.app/live/api/v1/web/deliveries/getridersummary?applocationid=1&partnerid=1&tenantid=8&fromdate=2026-05-20&todate=2026-05-20 -# Get master deliveries board (Web) -https://fiesta.nearle.app/live/api/v1/web/deliveries/getdeliveries?tenantid=8&fromdate=2026-05-20&todate=2026-05-20 -# Get mobile dispatch summaries (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/deliveries/deliverysummary?userid=15&fromdate=2026-05-20&todate=2026-05-20 -# Get mobile deliveries board (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/deliveries/getdeliveries?userid=15&status=assigned -# Fetch rider active shift deliveries queue (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/deliveries/getdeliveryqueues?userid=15&fromdate=2026-05-20&todate=2026-05-20 -๐Ÿช Tenant & Outlet Location GET APIs -http - - -# Search registered tenants (Web) -https://fiesta.nearle.app/live/api/v1/web/tenants/search?status=Active&keyword=Fresh -# Search tenants by keyword (Web) -https://fiesta.nearle.app/live/api/v1/web/tenants/searchbykeyword?keyword=daily -# Get all active tenants catalog (Web) -https://fiesta.nearle.app/live/api/v1/web/tenants/getalltenants?applocationid=1&status=Active&pageno=1&pagesize=10 -# Get outlet locations assigned to a tenant (Web) -https://fiesta.nearle.app/live/api/v1/web/tenants/gettenantlocations?tenantid=8 -# Retrieve delivery time slots config (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/gettenantslot -# Search tenants by keyword (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/searchbykeyword?keyword=grocery -# Retrieve tenants associated with a customer (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/getcustomertenants?customerid=4082&tenant=0 -# Get outlet locations linked to a tenant (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/gettenantlocations?tenantid=8 -# Get logistics pricing slabs for a tenant (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/gettenantpricing?tenantid=8&applocationid=1 -# Get staff members under a tenant store (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/getstaffs?tenantid=8 -# Get tenant detailed profile info (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/tenants/gettenantinfo?tenantid=8&locationid=2 -โš™๏ธ Utilities & General Configurations GET APIs -http - - -# Fetch application categories by tag (Web) -https://fiesta.nearle.app/live/api/v1/web/utils/getapptypes?tag=customer -# Resolve subcategories (Web) -https://fiesta.nearle.app/live/api/v1/web/utils/getsubcategories?moduleid=1&categoryid=2 -# Fetch system active geofence details (Web) -https://fiesta.nearle.app/live/api/v1/web/utils/getapplocations?applocationid=1 -# Fetch global system categories configurations (Web) -https://fiesta.nearle.app/live/api/v1/web/utils/getappcategories -# Get mobile geofence configuration details (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/utils/getapplocationconfig?applocationid=1 -# Get mobile active geofence details (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/utils/getapplocations?applocationid=1 -# Fetch mobile app types by tag (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/utils/getapptypes?tag=rider -# Fetch global payment & geofence configs (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/utils/getappconfig?configid=1 -# Get mobile category subcategories list (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/utils/getsubcategories?moduleid=1&categoryid=2 -# Fetch mobile app categories configurations (Mobile) -https://fiesta.nearle.app/live/api/v1/mob/utils/getappcategories diff --git a/Post, put and delete Api's.txt b/Post, put and delete Api's.txt deleted file mode 100644 index 3aa7077..0000000 --- a/Post, put and delete Api's.txt +++ /dev/null @@ -1,652 +0,0 @@ -1. User & Authentication APIs -๐Ÿ’ป Web Portal -POST Tenant Web Panel Login -URL: https://fiesta.nearle.app/live/api/v1/web/users/tenant/weblogin -Payload: -json - - -{ - "authname": "merchant_admin_01", - "password": "PasswordSecurityHash99!" -} -POST General Application Login -URL: https://fiesta.nearle.app/live/api/v1/web/users/applogin -Payload: -json - - -{ - "authname": "system_operator", - "password": "OperatorSafePasswordSecret", - "deviceid": "device_uuid_8828b", - "devicetype": "android" -} -POST Register New Web Staff Account -URL: https://fiesta.nearle.app/live/api/v1/web/users/create -Payload: -json - - -{ - "authname": "tenant_staff_steve", - "firstname": "Steve", - "lastname": "Rogers", - "password": "SteveSecurePassword12", - "email": "steve.rogers@merchant.com", - "dialcode": "+61", - "contactno": "412345678", - "roleid": 3, - "pin": 1234, - "address": "100 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", - "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "status": "active" -} -PUT Update Web Staff User Details -URL: https://fiesta.nearle.app/live/api/v1/web/users/update -Payload: -json - - -{ - "userid": 15, - "firstname": "Steve", - "lastname": "Captain", - "email": "steve.captain@merchant.com", - "contactno": "412345678", - "address": "200 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", - "status": "active" -} -๐Ÿ“ฑ Mobile App -POST Rider/Merchant Mobile App Login -URL: https://fiesta.nearle.app/live/api/v1/mob/users/tenant/login -Payload: -json - - -{ - "authname": "rider_john_01", - "password": "RiderSecretKey" -} -POST Create Mobile Staff User -URL: https://fiesta.nearle.app/live/api/v1/mob/users/create -Payload: (Uses the same schema as Web Register New Web Staff Account) -PUT Update Mobile Staff Details -URL: https://fiesta.nearle.app/live/api/v1/mob/users/update -Payload: (Uses the same schema as Web Update Web Staff User Details) -2. Customer Management APIs -๐Ÿ“ฑ Mobile App -POST Passwordless OTP Login (via Phone) -URL: https://fiesta.nearle.app/live/api/v1/mob/customers/login -Payload: -json - - -{ - "contactno": "0499888777" -} -POST Register Customer Account -URL: https://fiesta.nearle.app/live/api/v1/mob/customers/create -Payload: -json - - -{ - "firstname": "Jane", - "lastname": "Smith", - "profileimage": "https://storage.nearle.app/avatars/jane_smith.jpg", - "gender": "Female", - "dob": "1994-11-20", - "dialcode": "+61", - "contactno": "499888777", - "email": "jane.smith@gmail.com", - "deviceid": "uuid_7728b991a", - "devicetype": "ios", - "authmode": 1, - "customertoken": "fcm_token_device_hash_xyz", - "address": "456 Oak Avenue", - "suburb": "Richmond", - "city": "Melbourne", - "state": "VIC", - "postcode": "3121", - "latitude": "-37.8212", - "longitude": "144.9984", - "applocationid": 1, - "status": 1, - "intro": "Regular subscriber of organic morning deliveries." -} -POST Save New Geofenced Location Address -URL: https://fiesta.nearle.app/live/api/v1/mob/customers/createlocations -Payload: -json - - -{ - "customerid": 4082, - "address": "123 High Street", - "suburb": "Prahran", - "city": "Melbourne", - "state": "VIC", - "postcode": "3181", - "latitude": "-37.8502", - "longitude": "144.9924", - "primaryaddress": 1, - "status": 1 -} -POST Log Customer Support Ticket Request -URL: https://fiesta.nearle.app/live/api/v1/mob/customers/createcustomerrequest -Payload: -json - - -{ - "customerid": 4082, - "tenantid": 8, - "apptypeid": 1, - "locationid": 2, - "subject": "Delay in Morning Milk Delivery", - "remarks": "Order scheduled for 7:00 AM hasn't arrived.", - "status": 1 -} -PUT Update Customer Profile Details -URL: https://fiesta.nearle.app/live/api/v1/mob/customers/update -Payload: -json - - -{ - "customerid": 4082, - "firstname": "Jane", - "lastname": "Miller", - "email": "jane.miller@gmail.com", - "contactno": "499888777", - "address": "789 Pine Road", - "suburb": "Hawthorn", - "city": "Melbourne", - "state": "VIC", - "postcode": "3122", - "status": 1 -} -3. Catalog & Product Inventory APIs -๐Ÿ’ป Web Portal -POST Add Multi-Product Stock Entry -URL: https://fiesta.nearle.app/live/api/v1/web/products/createproductstock -Payload: -json - - -[ - { - "tenantid": 8, - "locationid": 2, - "productid": 105, - "quantity": 150, - "stocktype": "credit", - "status": "active" - }, - { - "tenantid": 8, - "locationid": 2, - "productid": 109, - "quantity": 80, - "stocktype": "credit", - "status": "active" - } -] -POST Create Master Product Catalog Item -URL: https://fiesta.nearle.app/live/api/v1/web/products/create -Payload: -json - - -{ - "applocationid": 1, - "tenantid": 8, - "categoryid": 2, - "subcategoryid": 12, - "productname": "Fresh Cow Milk 1L", - "productimage": "https://storage.nearle.app/products/cow_milk_1l.png", - "productdesc": "Pure farm fresh cow milk pasteurized.", - "productsku": "MILK-COW-1L", - "productunit": "Litre", - "unitvalue": "1", - "productcost": 1.80, - "retailprice": 3.50, - "taxpercent": 5.00, - "productstock": 100, - "productstatus": "available", - "approve": 1 -} -POST Map Product to Specific Outlet Location -URL: https://fiesta.nearle.app/live/api/v1/web/products/createproductlocation -Payload: -json - - -[ - { - "tenantid": 8, - "locationid": 2, - "productid": 105, - "catlougeid": 1, - "minquantity": 5, - "maxquantity": 200, - "price": 3.75, - "status": "Active" - } -] -POST Create Product Variant Metadata -URL: https://fiesta.nearle.app/live/api/v1/web/products/createproductvariant -Payload: -json - - -{ - "tenantid": 8, - "variantname": "1.5 Liters Bottle", - "categoryid": 2, - "subcategoryid": 12, - "status": "active" -} -PUT Update Master Product Details -URL: https://fiesta.nearle.app/live/api/v1/web/products/update -Payload: -json - - -{ - "productid": 105, - "productname": "Organic Farm Cow Milk 1L", - "productcost": 1.95, - "retailprice": 3.75, - "productstock": 120, - "productstatus": "available" -} -PUT Update Product Outlet Constraints -URL: https://fiesta.nearle.app/live/api/v1/web/products/updateproductlocation -Payload: -json - - -{ - "productlocationid": 25, - "tenantid": 8, - "locationid": 2, - "productid": 105, - "minquantity": 10, - "maxquantity": 150, - "price": 3.99, - "status": "Active" -} -DELETE Purge Master Product Catalog Entry -URL: https://fiesta.nearle.app/live/api/v1/web/products/delete?productid=105 -Parameters: -productid (int, required): Unique ID of the catalog item to be purged. -๐Ÿ“ฑ Mobile App -PUT Mobile Update Product Details -URL: https://fiesta.nearle.app/live/api/v1/mob/products/update -Payload: (Uses the same schema as Web Update Master Product Details) -PUT Mobile Update Product Outlet Config -URL: https://fiesta.nearle.app/live/api/v1/mob/products/updateproductlocation -Payload: (Uses the same schema as Web Update Product Outlet Constraints) -4. Order Orchestration APIs -๐Ÿ’ป Web Portal -POST Create New Web Order (Flat JSON Format) -URL: https://fiesta.nearle.app/live/api/v1/web/orders/createorder -Payload: -json - - -{ - "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "moduleid": 1, - "customerid": 4082, - "orderstatus": "pending", - "deliverytype": "standard", - "deliverytime": "2026-05-20 18:00:00", - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplong": "144.9631", - "pickupcustomer": "Central Plaza Merchant", - "pickupcontactno": "399887766", - "deliveryaddress": "Apt 4B, Sunset Boulevard, Richmond", - "deliverylat": "-37.8212", - "deliverylong": "144.9984", - "orderamount": 11.48, - "taxamount": 1.10, - "ordervalue": 12.58, - "itemcount": 2, - "paymenttype": 1, - "paymentstatus": 0, - "deliverycharge": 3.00, - "ordernotes": "Please ring doorbell twice.", - "items": [ - { - "productid": 105, - "productname": "Organic Whole Milk 1L", - "orderqty": 2, - "price": 3.99, - "taxpercentage": 10.00, - "taxamount": 0.80, - "productsumprice": 7.98 - }, - { - "productid": 109, - "productname": "Salted Butter 250g", - "orderqty": 1, - "price": 3.50, - "taxpercentage": 10.00, - "taxamount": 0.35, - "productsumprice": 3.50 - } - ] -} -PUT Update Order Status & Financial Flag -URL: https://fiesta.nearle.app/live/api/v1/web/orders/updateorder -Payload: -json - - -{ - "orderheaderid": 2099, - "orderstatus": "ready", - "paymentstatus": 1, - "remarks": "Order packed and waiting for rider assignment." -} -๐Ÿ“ฑ Mobile App -POST Create Mobile Order (Wrapped JSON Format) -URL: https://fiesta.nearle.app/live/api/v1/mob/orders/createorder -Payload: -json - - -{ - "orders": { - "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "moduleid": 1, - "customerid": 4082, - "orderstatus": "pending", - "deliverytype": "standard", - "deliverytime": "2026-05-20 18:00:00", - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplong": "144.9631", - "pickupcustomer": "Central Plaza Merchant", - "pickupcontactno": "399887766", - "deliveryaddress": "Apt 4B, Sunset Boulevard, Richmond", - "deliverylat": "-37.8212", - "deliverylong": "144.9984", - "orderamount": 11.48, - "taxamount": 1.10, - "ordervalue": 12.58, - "itemcount": 2, - "paymenttype": 1, - "paymentstatus": 0, - "deliverycharge": 3.00, - "ordernotes": "Leave in parcel locker.", - "items": [ - { - "productid": 105, - "productname": "Organic Whole Milk 1L", - "orderqty": 2, - "price": 3.99, - "taxpercentage": 10.00, - "taxamount": 0.80, - "productsumprice": 7.98 - }, - { - "productid": 109, - "productname": "Salted Butter 250g", - "orderqty": 1, - "price": 3.50, - "taxpercentage": 10.00, - "taxamount": 0.35, - "productsumprice": 3.50 - } - ] - } -} -PUT Mobile Update Order Status -URL: https://fiesta.nearle.app/live/api/v1/mob/orders/updateorder -Payload: (Uses the same schema as Web Update Order Status & Financial Flag) -5. Delivery & Rider Logistics APIs -๐Ÿ’ป Web Portal -POST Initialize Logistics Delivery Dispatch (Assign Rider) -URL: https://fiesta.nearle.app/live/api/v1/web/deliveries/createdeliveries -Payload: -json - - -[ - { - "orderheaderid": 2100, - "applocationid": 1, - "partnerid": 1, - "tenantid": 8, - "moduleid": 1, - "locationid": 2, - "userid": 15, - "orderid": "ORD-19028-4", - "deliverydate": "2026-05-20", - "orderstatus": "assigned", - "assigntime": "2026-05-20 12:10:00", - "itemcount": 2, - "orderamount": 12.58, - "customerid": 4082, - "pickupcustomer": "Central Merchant Warehouse", - "pickupcontactno": "987654321", - "pickuplocationid": 2, - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplon": "144.9631", - "deliverycustomerid": 4082, - "deliverylocationid": 554, - "deliverycustomer": "Jane Smith", - "deliverycontactno": "499888777", - "deliveryaddress": "456 Oak Avenue, Richmond, VIC, 3121", - "droplat": "-37.8212", - "droplon": "144.9984", - "deliverycharges": 3.00, - "deliveryamt": 15.58, - "deliverytype": "standard", - "paymenttype": 1 - } -] -PUT Update Rider Pickup Status -URL: https://fiesta.nearle.app/live/api/v1/web/deliveries/updatedelivery -Payload: -json - - -{ - "deliveryid": 8871, - "orderheaderid": 2100, - "userid": 15, - "orderstatus": "picked", - "pickuptime": "2026-05-20 12:20:00", - "riderslat": "-37.8140", - "riderslon": "144.9640" -} -๐Ÿ“ฑ Mobile App -POST Initialize Mobile Logistics Delivery -URL: https://fiesta.nearle.app/live/api/v1/mob/deliveries/createdeliveries -Payload: (Uses the same schema as Web Initialize Logistics Delivery Dispatch) -PUT Rider Update Dispatch Status (Delivered & GPS Tracking) -URL: https://fiesta.nearle.app/live/api/v1/mob/deliveries/updatedelivery -Payload: -json - - -{ - "deliveryid": 8871, - "orderheaderid": 2100, - "userid": 15, - "orderstatus": "delivered", - "deliverytime": "2026-05-20 12:45:00", - "riderslat": "-37.8210", - "riderslon": "144.9980", - "actualkms": "4.2", - "feedback": "Handed over safely.", - "smsdelivery": 1 -} -6. Tenant & Location Configuration APIs -๐Ÿ’ป Web Portal -POST Link Customer Profile to Tenant Store -URL: https://fiesta.nearle.app/live/api/v1/web/tenants/createtenantcustomer -Payload: -json - - -{ - "moduleid": 1, - "tenantid": 8, - "locationid": 2, - "customerid": 4082, - "customerlocationid": 554, - "status": 1 -} -POST Create New Geofenced Store Location -URL: https://fiesta.nearle.app/live/api/v1/web/tenants/createlocation -Payload: -json - - -{ - "tenantid": 8, - "applocationid": 1, - "moduleid": 1, - "locationname": "Hawthorn Daily Fresh Store", - "email": "hawthorn.store@merchant.com", - "contactno": "399443322", - "latitude": "-37.8222", - "longitude": "145.0384", - "address": "12 Glenferrie Rd", - "suburb": "Hawthorn", - "city": "Melbourne", - "state": "VIC", - "postcode": "3122", - "opentime": "07:00:00", - "closetime": "22:00:00", - "partnerid": 1, - "deliveryradius": 5000, - "deliverymins": 30, - "cancelsecs": 60, - "status": "Active" -} -POST Map Tenant Location Linkage Entry -URL: https://fiesta.nearle.app/live/api/v1/web/tenants/createtenantlocation -Payload: (Uses the same schema as Create New Geofenced Store Location) -PUT Update Store Location Configurations -URL: https://fiesta.nearle.app/live/api/v1/web/tenants/updatelocation -Payload: -json - - -{ - "locationid": 2, - "tenantid": 8, - "applocationid": 1, - "locationname": "Richmond Daily Fresh Store", - "email": "richmond.store@merchant.com", - "contactno": "399887766", - "latitude": "-37.8212", - "longitude": "144.9984", - "address": "Shop 4, 100 Church St", - "suburb": "Richmond", - "city": "Melbourne", - "state": "VIC", - "postcode": "3121", - "opentime": "07:00:00", - "closetime": "22:00:00", - "deliveryradius": 8000, - "deliverymins": 45, - "cancelsecs": 120, - "status": "Active" -} -PUT Modify Tenant Location Linkage Config -URL: https://fiesta.nearle.app/live/api/v1/web/tenants/updatetenantlocation -Payload: (Uses the same schema as Update Store Location Configurations) -๐Ÿ“ฑ Mobile App -POST Mobile Link Customer Profile to Tenant Store -URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createtenantcustomer -Payload: (Uses the same schema as Web Link Customer Profile to Tenant Store) -POST Mobile Create Geofenced Store Location -URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createlocation -Payload: (Uses the same schema as Web Create New Geofenced Store Location) -POST Onboard/Create New Staff Member Account -URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createstaff -Payload: (Uses the same schema as Web Register New Web Staff Account) -POST Onboard New Tenant & Admin Profile (Joint Creation) -URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createtenantuser -Payload: -json - - -{ - "tenantname": "Fresh Organic Greens", - "configid": 1, - "partnerid": 1, - "moduleid": 1, - "tenanttype": "Enterprise", - "registrationno": "ABN-19028-299", - "tenanttoken": "tenant_fcm_token_hash_value_xyz", - "companyname": "Fresh Organic Greens Pty Ltd", - "devicetype": "web", - "firstname": "Arthur", - "primaryemail": "arthur@organicgreens.com", - "primarycontact": "488999000", - "categoryid": 2, - "subcategoryid": 12, - "address": "400 Chapel St", - "suburb": "South Yarra", - "city": "Melbourne", - "state": "VIC", - "postcode": "3141", - "latitude": "-37.8398", - "longitude": "144.9953", - "tenantimage": "https://storage.nearle.app/tenants/organic_greens.png", - "tenantinfo": "Direct farm-to-table organic vegetables delivery provider.", - "paymode1": 1, - "paymode2": 1, - "promotion": 0, - "minorder": 15, - "applocationid": 1, - "approved": 1, - "status": "Active", - "tenantlocations": { - "locationname": "South Yarra Main Warehouse", - "email": "southyarra@organicgreens.com", - "contactno": "488999000", - "latitude": "-37.8398", - "longitude": "144.9953", - "address": "400 Chapel St", - "suburb": "South Yarra", - "city": "Melbourne", - "state": "VIC", - "postcode": "3141", - "opentime": "06:00:00", - "closetime": "21:00:00", - "partnerid": 1, - "deliveryradius": 6000, - "deliverymins": 30, - "cancelsecs": 90, - "status": "Active" - } -} -PUT Mobile Update Store Location Configurations -URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/updatelocation -Payload: (Uses the same schema as Web Update Store Location Configurations) diff --git a/Xpress_api_get_docs.md b/Xpress_api_get_docs.md new file mode 100644 index 0000000..53f4403 --- /dev/null +++ b/Xpress_api_get_docs.md @@ -0,0 +1,450 @@ +# Nearle LiveSetup GET APIs Directory + +This document lists **all active GET APIs** registered under the `LiveSetup` routing function in the Nearle backend. + +* **Base URL**: `https://jupiter.nearle.app/` +* **Namespace**: `/live/api/...` +* **Format**: HTTP GET query parameters + +--- + +## ๐Ÿ‘ค Users & Authorization GET APIs +http + +# Get a specific user profile by ID (Mobile/Client) +https://jupiter.nearle.app/live/api/v1/users/getusers?userid=12 + +# Get a specific user profile by Username (Mobile/Client) +https://jupiter.nearle.app/live/api/v1/users/getusers?username=rider_joe + +# Get all users (V1) +https://jupiter.nearle.app/live/api/v1/users/getallusers?roleid=2&tenantid=8&pageno=1&pagesize=10&keyword=john + +# Get all users (V2) +https://jupiter.nearle.app/live/api/v2/users/getallusers?roleid=2&tenantid=8&pageno=1&pagesize=10&keyword=john + +--- + +## ๐Ÿ‘ฅ Customer Management GET APIs +http + +# Fetch customer profile by ID (Mobile) +https://jupiter.nearle.app/live/api/v1/customers/getbyid?customerid=4082 + +# Fetch customer profile by Contact Number (Mobile) +https://jupiter.nearle.app/live/api/v1/customers/getbyno?contactno=%2B61411222333 + +# Retrieve customers linked to a tenant +https://jupiter.nearle.app/live/api/v1/customers/getbytid?tenantid=8&pageno=1&pagesize=10 + +# Retrieve customers linked to a tenant location/branch +https://jupiter.nearle.app/live/api/v1/customers/gettenantcustomers?tenantid=8&pageno=1&pagesize=10 + +# Get customer saved address locations (Mobile) +https://jupiter.nearle.app/live/api/v1/customers/getcustomerlocation?customerid=4082 + +# Retrieve customers linked to a general app location zone +https://jupiter.nearle.app/live/api/v1/customers/getcustomersbyapplocation?applocationid=5 + +# Retrieve all registered customers with paginated keywords +https://jupiter.nearle.app/live/api/v1/customers/getallcustomers?pageno=1&pagesize=10&keyword=smith + +# Get customer counts and classifications summaries under a tenant +https://jupiter.nearle.app/live/api/v1/customers/getcustomersummary?tenantid=8 + +# Search customer names under a tenant +https://jupiter.nearle.app/live/api/v1/customers/search?keyword=Jane&tenantid=8 + +# Get customer logged support requests (Mobile) +https://jupiter.nearle.app/live/api/v1/customers/getcustomerrequests?customerid=4082&pageno=1&pagesize=10 + +--- + +## ๐Ÿ“ฆ Products & Catalog GET APIs +http + +# Retrieve all registered products with extensive filters +https://jupiter.nearle.app/live/api/v1/products/getallproducts?categoryid=4&subcategoryid=14&productid=101&applocationid=5&tenantid=8&locationid=45&keyword=strawberry&productstatus=available&approve=approved&pageno=1&pagesize=10 + +# Fetch detailed information of a single product (Mobile) +https://jupiter.nearle.app/live/api/v1/products/getproductinfo?productid=101 + +# List all general product categories (Mobile) +https://jupiter.nearle.app/live/api/v1/products/getproductcategories + +# List product subcategories under a specific category and tenant +https://jupiter.nearle.app/live/api/v1/products/getproductsubcategories?categoryid=4&tenantid=8 + +# Get products grouped under subcategories +https://jupiter.nearle.app/live/api/v1/products/getproductsbysubcategory?categoryid=4&tenantid=8&applocationid=5&locationid=45&keyword=berry + +# Retrieve product counts categorized by tenant and subcategory +https://jupiter.nearle.app/live/api/v1/products/getproductscount?tenantid=8&categoryid=4&subcategoryid=14&approve=approved + +# Fetch product detail matches by Variant ID +https://jupiter.nearle.app/live/api/v1/products/getproductbyvariant?tenantid=8&variantid=22 + +# List variants available under a tenant subcategory +https://jupiter.nearle.app/live/api/v1/products/getproductvariants?tenantid=8&subcategoryid=14 + +# Get active product discount rules under a tenant +https://jupiter.nearle.app/live/api/v1/products/getproductdiscounts?tenantid=8 + +# Retrieve products catalog for customer order creation (Mobile V2) +https://jupiter.nearle.app/live/api/v2/products/getcatalougeproducts?tenantid=8&locationid=45&subcategoryid=14&keyword=apple&pageno=1&pagesize=10 + +# Retrieve products mapped to a physical location (V2) +https://jupiter.nearle.app/live/api/v2/products/getlocationproducts?tenantid=8&locationid=45&subcategoryid=14&keyword=apple&pageno=1&pagesize=10 + +# Retrieve summary metrics of products in a location (V2) +https://jupiter.nearle.app/live/api/v2/products/getlocationproductsummary?tenantid=8&locationid=45 + +# Query product stock ledger statement history (V2) +https://jupiter.nearle.app/live/api/v2/products/getstockstatement?tenantid=8&locationid=45&subcategoryid=14&keyword=apple&pageno=1&pagesize=10 + +# Query current active product stock levels (V2) +https://jupiter.nearle.app/live/api/v2/products/getproductstocks?tenantid=8&locationid=45 + +# Query category-wise inventory summary statistics (V2) +https://jupiter.nearle.app/live/api/v2/products/getproductcategorywisesummary?tenantid=8&locationid=45&subcategoryid=14 + +# Fetch stock statement summaries (V2) +https://jupiter.nearle.app/live/api/v2/products/getstockstatementsummary?tenantid=8&locationid=45 + +--- + +## ๐Ÿ›’ Order Management GET APIs +http + +# Query all orders with custom filters (V1) +https://jupiter.nearle.app/live/api/v1/orders/getorders?fromdate=2026-05-01&todate=2026-05-20&status=pending&keyword=sydney&roleid=2&tenantid=8&locationid=45&pageno=1&pagesize=10 + +# Query partner dispatch tasks (V1) +https://jupiter.nearle.app/live/api/v1/orders/partner/getorders?partnerid=102&status=pending&pageno=1&pagesize=10 + +# Query tenant physical store orders (V1) +https://jupiter.nearle.app/live/api/v1/orders/tenant/getorders?tenantid=8&locationid=45&pageno=1&pagesize=10 + +# Query specific customer orders (V1) +https://jupiter.nearle.app/live/api/v1/orders/customer/getorders?customerid=12&pageno=1&pagesize=10 + +# Retrieve order locations count summary under a tenant (V1) +https://jupiter.nearle.app/live/api/v1/orders/tenant/getlocationsummary?tenantid=8 + +# Query consolidated order values summaries (V1) +https://jupiter.nearle.app/live/api/v1/orders/getordersummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20 + +# Query order status counts grouped by app location hubs (V1) +https://jupiter.nearle.app/live/api/v1/orders/getlocationsummary?tenantid=8 + +# Get monthly order counts grouped by app locations (V1) +https://jupiter.nearle.app/live/api/v1/orders/getorderinsight?tenantid=8 + +# Retrieve item line details and pricing summaries for an order (Mobile V1) +https://jupiter.nearle.app/live/api/v1/orders/getorderdetails?orderheaderid=9821 + +# Get customer orders filtered by application location zone (V1) +https://jupiter.nearle.app/live/api/v1/orders/getorderbylocations?customerid=12&applocationid=5 + +# Query active orders list (V2) +https://jupiter.nearle.app/live/api/v2/orders/getorders?fromdate=2026-05-01&todate=2026-05-20&status=pending&tenantid=8&locationid=45&pageno=1&pagesize=10 + +# Retrieve monthly counts per tenant store location (V2) +https://jupiter.nearle.app/live/api/v2/orders/getorderinsight?tenantid=8 + +# Fetch daily consolidated order summary values (V2) +https://jupiter.nearle.app/live/api/v2/orders/getordersummary?tenantid=8&fromdate=2026-05-01&todate=2026-05-20 + +# Retrieve tenant location-wise active order classifications (V2) +https://jupiter.nearle.app/live/api/v2/orders/getlocationsummary?tenantid=8 + +# Search customer orders with keywords and paging (V3) +https://jupiter.nearle.app/live/api/v3/orders/getcustomerorders?customerid=12&tenantid=8&orderstatus=delivered&pageno=1&pagesize=10 + +--- + +## ๐Ÿšš Deliveries & Dispatch GET APIs +http + +# Query parameterized deliveries list with search keyword (V2) +https://jupiter.nearle.app/live/api/v2/deliveries/getdeliveries?tenantid=8&locationid=45&partnerid=102&userid=12&status=pending&fromdate=2026-05-01&todate=2026-05-20&keyword=sydney&pageno=1&pagesize=10 + +# Query parameterized deliveries list with search keyword (V3) +https://jupiter.nearle.app/live/api/v3/deliveries/getdeliveries?tenantid=8&locationid=45&partnerid=102&userid=12&status=pending&fromdate=2026-05-01&todate=2026-05-20&keyword=sydney&pageno=1&pagesize=10 + +# Query event transaction logs trail of a delivery (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getdeliverylogs?deliveryid=405 + +# Query event log history of a delivery (V2) +https://jupiter.nearle.app/live/api/v2/deliveries/getdeliverylogs?deliveryid=405 + +# Query event log history of a delivery (V3) +https://jupiter.nearle.app/live/api/v3/deliveries/getdeliverylogs?deliveryid=405 + +# Query delivery status classification values (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/deliverysummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20 + +# Retrieve active deliveries count statistics grouped by app location (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getlocationsummary?tenantid=8 + +# Query active deliveries summary grouped by location (V2) +https://jupiter.nearle.app/live/api/v2/deliveries/getlocationsummary?tenantid=8 + +# Get current dispatch tasks queue (Mobile V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getdeliveryqueues?tenantid=8&locationid=45 + +# Get picked dispatch tasks from queue (Mobile V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getdeliveryqueuespicked?tenantid=8&locationid=45 + +# Query active dispatch task queues (Mobile V2) +https://jupiter.nearle.app/live/api/v2/deliveries/getdeliveryqueues?tenantid=8&locationid=45 + +# Get monthly delivery performance summaries (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getdeliveryinsight?tenantid=8 + +# Get complete distance, COD collections, and tasks report summaries (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getreportsummary?tenantid=8&fromdate=2026-05-01&todate=2026-05-20 + +# Get report summaries grouped by tenant store location (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getreportlocationsummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20 + +# Query report stats per Rider per tenant store location (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getriderlocationreportsummary?tenantid=8&userid=12&fromdate=2026-05-01&todate=2026-05-20 + +# Retrieve active riders shift and duty metric summaries (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getridersummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20 + +# Retrieve Rider metrics summary grouped by store location (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getriderlocationsummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20 + +# Fetch details of Rider assigned to a delivery task (Mobile V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getriderbydelivery?deliveryid=405 + +# Retrieve last delivery detail matching customer contact number (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getlastdeliverybycontact?contactno=%2B61411222333 + +# Get specific rider performance report summary (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getuserreportsummary?userid=12&fromdate=2026-05-01&todate=2026-05-20 + +# Query raw logs of rider activity (V1) +https://jupiter.nearle.app/live/api/v1/deliveries/getuserdeliverylogs?userid=12&fromdate=2026-05-01&todate=2026-05-20 + +--- + +## ๐Ÿงพ Invoices & Billing GET APIs +http + +# Retrieve next sequence identifier for tenant invoice generation +https://jupiter.nearle.app/live/api/v1/invoice/getseqno?tenantid=8 + +# List orders associated under an invoice +https://jupiter.nearle.app/live/api/v1/invoice/getinvoiceorders?invoiceid=402 + +# Query invoices catalog with paging and status checks +https://jupiter.nearle.app/live/api/v1/invoice/getallinvoice?tenantid=8&customerid=12&status=Unpaid&pageno=1&pagesize=10 + +# Retrieve consolidate revenue insights for invoice billing +https://jupiter.nearle.app/live/api/v1/invoice/getinvoiceinsight?tenantid=8 + +--- + +## ๐Ÿข Tenant & Location GET APIs +http + +# Fetch complete metadata and credentials of a single tenant +https://jupiter.nearle.app/live/api/v1/tenants/gettenantinfo?tenantid=8 + +# Search tenant registries by name or email keyword +https://jupiter.nearle.app/live/api/v1/tenants/search?keyword=sydney + +# Query list of staff roster belonging to a tenant location +https://jupiter.nearle.app/live/api/v1/tenants/getstaffs?tenantid=8&locationid=45 + +# Get active tenants mapped under an application hub zone +https://jupiter.nearle.app/live/api/v1/tenants/gettenants?applocationid=5 + +# Query complete list of tenants +https://jupiter.nearle.app/live/api/v1/tenants/getalltenants?pageno=1&pagesize=10&keyword=grocery + +# Query consolidated location metrics under a tenant +https://jupiter.nearle.app/live/api/v1/tenants/gettenantsummary?tenantid=8 + +# Check if tenant uses online cloud inventory storage +https://jupiter.nearle.app/live/api/v1/tenants/getcloudstore?tenantid=8 + +# Query physical warehouses/outlets mapped to a tenant +https://jupiter.nearle.app/live/api/v1/tenants/gettenantlocations?tenantid=8&pageno=1&pagesize=10 + +# Get operational time slots for orders fulfillment +https://jupiter.nearle.app/live/api/v1/tenants/gettenantslots?tenantid=8&locationid=45 + +# Query coordinate and contact details of a single store location +https://jupiter.nearle.app/live/api/v1/tenants/gettenantlocation?locationid=45 + +# Get delivery pricing rules configured for a tenant +https://jupiter.nearle.app/live/api/v1/tenants/gettenantpricing?tenantid=8 + +# Query support ticket requests created by a tenant +https://jupiter.nearle.app/live/api/v1/tenants/gettenantrequests?tenantid=8&pageno=1&pagesize=10 + +# Query pricing list configured for a tenant +https://jupiter.nearle.app/live/api/v1/tenants/getpricinglist?tenantid=8 + +# Query promotional active marketing discount settings +https://jupiter.nearle.app/live/api/v1/tenants/gettenantpromotions?tenantid=8 + +# Query location high level metric summary (V2) +https://jupiter.nearle.app/live/api/v2/tenants/getlocationsummary?tenantid=8 + +# Query active staff roster status metrics (V2) +https://jupiter.nearle.app/live/api/v2/tenants/gettenantstaffsummary?tenantid=8&locationid=45 + +# Query active dispatch rider metric counts (V2) +https://jupiter.nearle.app/live/api/v2/tenants/gettenantridersummary?tenantid=8&locationid=45 + +# Query list of tenants servicing a customer location (V2) +https://jupiter.nearle.app/live/api/v2/tenants/getcustomertenants?customerid=12&applocationid=5 + +--- + +## ๐Ÿ› ๏ธ Utilities & Configurations GET APIs +http + +# Get active app physical hub locations (V1) +https://jupiter.nearle.app/live/api/v1/utils/getapplocations?applocationid=5 + +# Get active app physical hub locations (V2) +https://jupiter.nearle.app/live/api/v2/utils/getapplocations?userid=12 + +# Get core app specifications and provider credentials (V1) +https://jupiter.nearle.app/live/api/v1/utils/getappconfig?configid=6 + +# Get all system app configurations +https://jupiter.nearle.app/live/api/v1/utils/getallappconfig + +# Get application type classifications matching tag string +https://jupiter.nearle.app/live/api/v1/utils/getapptypes?tag=Rider + +# List app categories mapped under module configuration +https://jupiter.nearle.app/live/api/v1/utils/getcategories?moduleid=6 + +# List app subcategories under category and module configurations +https://jupiter.nearle.app/live/api/v1/utils/getsubcategories?moduleid=6&categoryid=4 + +# Query exact pricing configurations mapped to zone and config +https://jupiter.nearle.app/live/api/v1/utils/getapppricing?applocationid=5&configid=6&pricingtypeid=1 + +# Get all app delivery pricing ranges +https://jupiter.nearle.app/live/api/v1/utils/getallpricing?applocationid=5 + +# Retrieve app zone configs +https://jupiter.nearle.app/live/api/v1/utils/getapplocationconfig?applocationid=5 + +# Query push notifications history processed for tenant +https://jupiter.nearle.app/live/api/v1/utils/gettenantnotifications?tenantid=8&pageno=1&pagesize=10 + +# Fetch third-party shopfront sync order payloads +https://jupiter.nearle.app/live/api/v1/utils/getshopfrontorders + +# Get rider cumulative bonus points summary +https://jupiter.nearle.app/live/api/v1/utils/getuserbonussummary?userid=12 + +# List all system platform roles +https://jupiter.nearle.app/live/api/v1/utils/getuserroles + +# Retrieve app user credentials stored in Redis cache +https://jupiter.nearle.app/live/api/v1/utils/getuserredis?userid=12 + +# Query raw rider logs cached in memory +https://jupiter.nearle.app/live/api/v1/utils/getriderperiodiclogs?userid=12 + +# Query current cached online/duty status of a Rider +https://jupiter.nearle.app/live/api/v1/utils/getriderstatus?userid=12 + +--- + +## ๐Ÿค Logistics Partner GET APIs +http + +# Get active dispatch riders summary metrics +https://jupiter.nearle.app/live/api/v1/partners/getactiveriderssummary?partnerid=102 + +# Get available rider operational shifts +https://jupiter.nearle.app/live/api/v1/partners/getridershifts?partnerid=102&shiftdate=2026-05-20 + +# Query delivery billing price configurations for riders +https://jupiter.nearle.app/live/api/v1/partners/getriderpricing?partnerid=102&applocationid=5 + +# Retrieve rider pools availability status +https://jupiter.nearle.app/live/api/v1/partners/getriderpool?partnerid=102&applocationid=5 + +# Retrieve general rider user info metadata (V1) +https://jupiter.nearle.app/live/api/v1/partners/getriderinfo?partnerid=102&userid=12 + +# Retrieve general rider user info metadata (V2) +https://jupiter.nearle.app/live/api/v2/partners/getriderinfo?partnerid=102&userid=12 + +# Fetch active logistics riders status metrics (V1) +https://jupiter.nearle.app/live/api/v1/partners/getriders?partnerid=102&applocationid=5 + +# Fetch active logistics riders status metrics (V2) +https://jupiter.nearle.app/live/api/v2/partners/getriders?partnerid=102&applocationid=5 + +# Query full details of a single rider (V1) +https://jupiter.nearle.app/live/api/v1/partners/getriderdetail?userid=12 + +# List all registered riders in the partner pool +https://jupiter.nearle.app/live/api/v1/partners/getallriders?partnerid=102&pageno=1&pagesize=10 + +# List partner profiles +https://jupiter.nearle.app/live/api/v1/partners/getpartners?partnerid=102 + +# Fetch physical location configuration mappings +https://jupiter.nearle.app/live/api/v1/partners/getlocations?partnerid=102 + +# List partner logins under user directory +https://jupiter.nearle.app/live/api/v1/partners/getpartnerusers?partnerid=102 + +# Get order counts completed per rider +https://jupiter.nearle.app/live/api/v1/partners/getridercount?partnerid=102&fromdate=2026-05-01&todate=2026-05-20 + +# Fetch rider logs (V1) +https://jupiter.nearle.app/live/api/v1/partners/getriderlog?userid=12&logdate=2026-05-20 + +# Query rider cumulative login logs (V1) +https://jupiter.nearle.app/live/api/v1/partners/getriderlogs?partnerid=102&fromdate=2026-05-01&todate=2026-05-20 + +# Query rider cumulative login logs (V2) +https://jupiter.nearle.app/live/api/v2/partners/getriderlogs?partnerid=102&fromdate=2026-05-01&todate=2026-05-20 + +# Get weekly cumulative kilometers traveled by rider +https://jupiter.nearle.app/live/api/v1/partners/getriderweeklykms?userid=12&fromdate=2026-05-01&todate=2026-05-20 + +# Get rider support requests +https://jupiter.nearle.app/live/api/v1/partners/getridersupport?userid=12 + +# Get consolidated summary profiles of all riders +https://jupiter.nearle.app/live/api/v1/partners/getallridersummary?partnerid=102 + +# Get summary of rider location mappings +https://jupiter.nearle.app/live/api/v1/partners/getuserlocationsummary?partnerid=102 + +# Retrieve admin access tokens +https://jupiter.nearle.app/live/api/v1/partners/getadmintoken?partnerid=102 + +# Get today's delivery status metrics +https://jupiter.nearle.app/live/api/v2/partners/getdeliverystats?partnerid=102 + +--- + +## ๐Ÿ’ณ Payments & Platform Admin GET APIs +http + +# Query payment requests log +https://jupiter.nearle.app/live/api/v1/payments/requests/getpaymentrequest?customerid=12 + +# Retrieve specific order summaries under administrator access +https://jupiter.nearle.app/live/api/v1/admin/orders/getorders?tenantid=8&pageno=1&pagesize=10 + +# Fetch SMS provider specifications +https://jupiter.nearle.app/live/api/v1/platform/getsmsprovider diff --git a/Xpress_api_write_docs.md b/Xpress_api_write_docs.md new file mode 100644 index 0000000..0f652c3 --- /dev/null +++ b/Xpress_api_write_docs.md @@ -0,0 +1,1081 @@ +# Nearle LiveSetup Write APIs (POST, PUT, DELETE) Directory + +This document details the **POST, PUT, and DELETE** endpoints under the `LiveSetup` routing namespace `/live/api/...`, providing exact structures for all required JSON request bodies. + +* **Base URL**: `https://jupiter.nearle.app/` +* **Format**: HTTP Header `Content-Type: application/json` is required for all payloads. + +--- + +## Table of Contents +1. [๐Ÿ‘ค Users & Authorization APIs](#1-users--authorization-apis) +2. [๐Ÿ‘ฅ Customer Management APIs](#2-customer-management-apis) +3. [๐Ÿข Tenant & Location APIs](#3-tenant--location-apis) +4. [๐Ÿ“ฆ Products & Catalog APIs](#4-products--catalog-apis) +5. [๐Ÿ›’ Order Management APIs](#5-order-management-apis) +6. [๐Ÿšš Deliveries & Dispatch APIs](#6-deliveries--dispatch-apis) +7. [๐Ÿค Partner & Rider Operations APIs](#7-partner--rider-operations-apis) +8. [๐Ÿงพ Invoices & Billing APIs](#8-invoices--billing-apis) +9. [๐Ÿ› ๏ธ Utilities & Webhooks APIs](#9-utilities--webhooks-apis) +10. [๐Ÿ’ณ Payments APIs](#10-payments-apis) + +--- + +## 1. ๐Ÿ‘ค Users & Authorization APIs + +### 1.1 User Login (Generic / Staff / Admin) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/users/login` +* **Request Body**: + ```json + { + "username": "admin_nearle", + "password": "secure_password_hash" + } + ``` + +### 1.2 Tenant Login +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/users/tenant/login` +* **Request Body**: + ```json + { + "username": "tenant_manager", + "password": "secure_password_hash" + } + ``` + +### 1.3 Partner Login +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/users/partner/login` +* **Request Body**: + ```json + { + "username": "logistics_partner_ceo", + "password": "secure_password_hash" + } + ``` + +### 1.4 Rider Authentication (V1) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/users/rider/login` +* **Request Body**: + ```json + { + "username": "rider_john", + "password": "rider_password" + } + ``` + +### 1.5 Rider Authentication with PIN & FCM Token (V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/users/rider/login` +* **Request Body**: + ```json + { + "username": "rider_john", + "pin": 1234, + "userfcmtoken": "fcm_device_token_abc123", + "deviceid": "device_uuid_981249", + "devicetype": "android" + } + ``` + +### 1.6 Tenant Web Login +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/users/tenant/weblogin` +* **Request Body**: + ```json + { + "username": "tenant_web_admin", + "password": "secure_password_hash" + } + ``` + +### 1.7 Create App User (V1 / V2) +* **URLs**: + * `POST https://jupiter.nearle.app/live/api/v1/users/create` + * `POST https://jupiter.nearle.app/live/api/v2/users/create` +* **Request Body**: + ```json + { + "userid": 0, + "authname": "rider_joe", + "firstname": "Joe", + "lastname": "Smith", + "password": "joe_password_raw", + "email": "joe.smith@nearle.app", + "contactno": "+61400111222", + "roleid": 4, + "pin": 1234, + "tenantid": 8, + "locationid": 45, + "applocationid": 5, + "status": "Active" + } + ``` + +### 1.8 Update App User Details (V1 / V2) +* **URLs**: + * `PUT https://jupiter.nearle.app/live/api/v1/users/update` + * `PUT https://jupiter.nearle.app/live/api/v2/users/update` +* **Request Body**: + ```json + { + "userid": 12, + "authname": "rider_joe", + "firstname": "Joseph", + "lastname": "Smith", + "email": "joseph.smith@nearle.app", + "contactno": "+61400111222", + "roleid": 4, + "pin": 1234, + "tenantid": 8, + "locationid": 45, + "applocationid": 5, + "status": "Active" + } + ``` + +### 1.9 Delete App User +* **URL**: `DELETE https://jupiter.nearle.app/live/api/v1/users/delete` +* **Request Body**: + ```json + { + "userid": 12 + } + ``` + +--- + +## 2. ๐Ÿ‘ฅ Customer Management APIs + +### 2.1 Customer Login (Mobile OTP or Contact verification) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/customers/login` +* **Request Body**: + ```json + { + "contactno": "+61411222333" + } + ``` + +### 2.2 Register Customer +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/customers/create` +* **Request Body**: + ```json + { + "customerid": 0, + "tenantid": 8, + "applocationid": 5, + "firstname": "Jane", + "lastname": "Doe", + "email": "jane.doe@example.com", + "contactno": "+61411222333", + "dob": "1992-06-15", + "gender": "Female", + "status": "Active" + } + ``` + +### 2.3 Update Customer Profile +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/customers/update` +* **Request Body**: + ```json + { + "customerid": 4082, + "tenantid": 8, + "applocationid": 5, + "firstname": "Jane", + "lastname": "Smith", + "email": "jane.smith@example.com", + "contactno": "+61411222333", + "dob": "1992-06-15", + "gender": "Female", + "status": "Active" + } + ``` + +### 2.4 Create Customer Address Locations +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/customers/createlocations` +* **Request Body**: + ```json + [ + { + "locationid": 0, + "customerid": 4082, + "locationname": "Home Address", + "address": "100 Berry St, North Sydney NSW 2060", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" + } + ] + ``` + +### 2.5 Delete Customer Profile +* **URL**: `DELETE https://jupiter.nearle.app/live/api/v1/customers/delete` +* **Request Body**: + ```json + { + "customerid": 4082 + } + ``` + +### 2.6 Submit Customer Support Request +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/customers/createcustomerrequest` +* **Request Body**: + ```json + { + "customerid": 4082, + "subject": "Missing items in order ORD-000843", + "description": "Apples were missing from my fresh produce bag.", + "category": "Refund/Missing Items" + } + ``` + +--- + +## 3. ๐Ÿข Tenant & Location APIs + +### 3.1 Create Tenant +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/create` +* **Request Body**: + ```json + { + "tenantid": 0, + "tenantname": "Sydney Fresh Grocers", + "status": "Active" + } + ``` + +### 3.2 Create Tenant Location / Branch +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createlocation` +* **Request Body**: + ```json + { + "tenantid": 8, + "locationname": "North Sydney Outlet", + "address": "45 Berry St", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" + } + ``` + +### 3.3 Create Tenant User Setup +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createtenantuser` +* **Request Body**: + ```json + { + "tenantid": 8, + "userid": 12, + "status": "Active" + } + ``` + +### 3.4 Update Tenant Details +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/tenants/update` +* **Request Body**: + ```json + { + "tenantid": 8, + "tenantname": "Sydney Premium Grocers Group", + "status": "Active" + } + ``` + +### 3.5 Update Tenant Location Details (V1) +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/tenants/updatelocation` +* **Request Body**: + ```json + { + "locationid": 45, + "tenantid": 8, + "locationname": "North Sydney Hub Store", + "address": "45 Berry St", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" + } + ``` + +### 3.6 Create Partner Association (Console) +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/tenants/createpartneruser` +* **Request Body**: + ```json + { + "tenantid": 8, + "partnerid": 102, + "status": "Active" + } + ``` + +### 3.7 Add Customer to Tenant Database +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createtenantcustomer` +* **Request Body**: + ```json + { + "tenantid": 8, + "customerid": 4082, + "status": "Active" + } + ``` + +### 3.8 Add Tenant Roster Staff +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createstaff` +* **Request Body**: + ```json + { + "userid": 15, + "tenantid": 8, + "locationid": 45, + "status": "Active" + } + ``` + +### 3.9 Update Tenant Roster Staff +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/tenants/updatestaff` +* **Request Body**: + ```json + { + "userid": 15, + "tenantid": 8, + "locationid": 45, + "status": "Inactive" + } + ``` + +### 3.10 Create Delivery Rate Config for Tenant +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createpricing` +* **Request Body**: + ```json + { + "tenantid": 8, + "basefare": 8.50, + "additionalkm": 1.50, + "additionalcharges": 2.00, + "fuelcharge": 0.50 + } + ``` + +### 3.11 Create Tenant Support Request ticket +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createtenantrequest` +* **Request Body**: + ```json + { + "tenantid": 8, + "subject": "Payout mismatch on invoice INV-00802", + "description": "Calculated payout did not include fuel tax bonus.", + "category": "Billing" + } + ``` + +### 3.12 Create Tenant Discount Promotion Configuration +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/tenants/createtenantpromotions` +* **Request Body**: + ```json + { + "tenantid": 8, + "promocode": "FREESHIP50", + "discountamount": 10.00, + "minordervalue": 50.00, + "status": "Active" + } + ``` + +### 3.13 Create Tenant physical outlet (V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/tenants/createtenantlocation` +* **Request Body**: See V1 location request payload structure. + +### 3.14 Update Tenant Physical Location Details (V2) +* **URL**: `PUT https://jupiter.nearle.app/live/api/v2/tenants/updatetenantlocation` +* **Request Body**: See V1 location request payload structure. + +--- + +## 4. ๐Ÿ“ฆ Products & Catalog APIs + +### 4.1 Create Catalog Product +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/products/create` +* **Request Body**: + ```json + { + "productid": 0, + "productname": "Organic Strawberries 500g", + "categoryid": 4, + "subcategoryid": 14, + "tenantid": 8, + "applocationid": 5, + "productcost": 6.80, + "unitvalue": "500g", + "productstatus": "available", + "sku": "STRAW-500G-ORG", + "status": "Active" + } + ``` + +### 4.2 Update Product Attributes +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/products/update` +* **Request Body**: + ```json + { + "productid": 101, + "productname": "Premium Organic Strawberries 500g", + "categoryid": 4, + "subcategoryid": 14, + "tenantid": 8, + "applocationid": 5, + "productcost": 7.20, + "unitvalue": "500g", + "productstatus": "available", + "sku": "STRAW-500G-ORG", + "status": "Active" + } + ``` + +### 4.3 Delete Product +* **URL**: `DELETE https://jupiter.nearle.app/live/api/v1/products/delete` +* **Request Body**: + ```json + { + "productid": 101 + } + ``` + +### 4.4 Create Product Variant +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/products/createproductvariant` +* **Request Body**: + ```json + { + "productid": 101, + "variantname": "Mega Pack 1Kg", + "variantcost": 12.50, + "sku": "STRAW-1KG-ORG", + "status": "Active" + } + ``` + +### 4.5 Setup Product Discount Rule +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/products/createproductdiscount` +* **Request Body**: + ```json + { + "productid": 101, + "discountpercentage": 15.00, + "status": "Active" + } + ``` + +### 4.6 Set Product Location Map (V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/products/createproductlocation` +* **Request Body**: + ```json + [ + { + "productid": 101, + "locationid": 45, + "tenantid": 8, + "status": "Active" + } + ] + ``` + +### 4.7 Update Product Location Map (V2) +* **URL**: `PUT https://jupiter.nearle.app/live/api/v2/products/updateproductlocation` +* **Request Body**: + ```json + { + "productid": 101, + "locationid": 45, + "status": "Inactive" + } + ``` + +### 4.8 Add Stock Entry (Inbound/Outbound Ingest - V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/products/createproductstock` +* **Request Body**: + ```json + [ + { + "stockid": 0, + "productid": 101, + "locationid": 45, + "tenantid": 8, + "qty": 50, + "transactiontype": "in", + "reference": "PURCHASE-PO9812", + "createdby": 12 + } + ] + ``` + +### 4.9 Update Product Stock Quantity (V2) +* **URL**: `PUT https://jupiter.nearle.app/live/api/v2/products/updateproductstock` +* **Request Body**: + ```json + { + "productid": 101, + "locationid": 45, + "tenantid": 8, + "qty": 45, + "transactiontype": "out", + "reference": "ADJUSTMENT-RECON", + "createdby": 12 + } + ``` + +--- + +## 5. ๐Ÿ›’ Order Management APIs + +### 5.1 Create Simple Order (V1) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/orders/createorder` +* **Request Body**: + ```json + { + "orders": { + "tenantid": 8, + "locationid": 45, + "customerid": 4082, + "orderamount": 13.60, + "itemcount": 2, + "items": [ + { + "productid": 101, + "productname": "Organic Strawberries 500g", + "orderqty": 2.0, + "unitprice": 6.80 + } + ] + } + } + ``` + +### 5.2 Create Multiple Orders in Bulk (V1) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/orders/createorders` +* **Request Body**: + ```json + [ + { + "orders": { + "tenantid": 8, + "locationid": 45, + "customerid": 4082, + "orderamount": 6.80, + "itemcount": 1, + "items": [ ... ] + } + } + ] + ``` + +### 5.3 Update Order Details +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/orders/updateorder` +* **Request Body**: + ```json + { + "orderheaderid": 9821, + "orderstatus": "delivered", + "deliveryamt": 12.50 + } + ``` + +### 5.4 Update Multiple Orders Status in Bulk +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/orders/updatemultipleorders` +* **Request Body**: + ```json + [ + { + "orderheaderid": 9821, + "orderstatus": "picked" + }, + { + "orderheaderid": 9822, + "orderstatus": "picked" + } + ] + ``` + +### 5.5 Create Order with Coordinates Details (V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/orders/createorder` +* **Request Body**: + ```json + { + "orders": { + "tenantid": 8, + "orderamount": 13.60, + "itemcount": 1, + "items": [ + { + "productid": 101, + "productname": "Organic Strawberries 500g", + "orderqty": 2.0, + "unitprice": 6.80 + } + ] + }, + "pickup": { + "customerid": 15, + "address": "Pickup Main Warehouse St", + "latitude": "-33.8688", + "longitude": "151.2093" + }, + "drop": { + "customerid": 4082, + "address": "100 Berry St, North Sydney NSW 2060", + "latitude": "-33.8398", + "longitude": "151.2058" + } + } + ``` + +### 5.6 Create Order with Auto Stock-Out Record (V3) +* **URL**: `POST https://jupiter.nearle.app/live/api/v3/orders/createorder` +* **Request Body**: See V1 order payload format. + +--- + +## 6. ๐Ÿšš Deliveries & Dispatch APIs + +### 6.1 Register New Dispatch Task (V1) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/deliveries/createdelivery` +* **Request Body**: + ```json + { + "deliveryid": 0, + "orderheaderid": 9821, + "userid": 12, + "tenantid": 8, + "orderid": "ORD-000843", + "deliverydate": "2026-05-20", + "orderstatus": "pending", + "pickupaddress": "123 Warehouse Rd", + "pickuplat": "-33.8600", + "pickuplon": "151.2000", + "deliveryaddress": "45 Residential St", + "deliverylat": "-33.8700", + "deliverylong": "151.2100", + "deliveryamt": 12.50, + "paymenttype": 43 + } + ``` + +### 6.2 Register Bulk Dispatches (V1) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/deliveries/createdeliveries` +* **Request Body**: Array of V1 dispatch payloads. + +### 6.3 Update Transit Status (Rider state transitions V1) +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/deliveries/Updatedelivery` +* **Request Body**: + ```json + { + "deliveryid": 405, + "orderheaderid": 9821, + "userid": 12, + "orderstatus": "delivered", + "starttime": "2026-05-20 10:30:00", + "arrivaltime": "2026-05-20 10:45:00", + "deliverytime": "2026-05-20 10:50:00", + "riderslat": "-33.8702", + "riderslon": "151.2103", + "dropimage": "base64_or_s3_url_string", + "collectedamt": 12.50, + "collectionstatus": 1 + } + ``` + +### 6.4 Publish Delivery Tracking Logs (V1) +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/deliveries/createdeliverylog` +* **Request Body**: + ```json + { + "deliveryid": 405, + "latitude": "-33.8688", + "longitude": "151.2093", + "raw_latitude": "-33.86885", + "raw_longitude": "151.20935", + "speed": "24.5", + "heading": "180.0", + "status": "in_transit" + } + ``` + +### 6.5 Register Bulk Dispatches (V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/deliveries/createdeliveries` +* **Request Body**: Array of V1 dispatch payloads. + +### 6.6 Publish Delivery Tracking Logs (V2) +* **URL**: `POST https://jupiter.nearle.app/live/api/v2/deliveries/createdeliverylog` +* **Request Body**: See V1 tracking log payload. + +--- + +## 7. ๐Ÿค Partner & Rider Operations APIs + +### 7.1 Setup Logistics Shift +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/partners/createshift` +* **Request Body**: + ```json + { + "shiftid": 0, + "shiftdate": "2026-05-20", + "starttime": "08:00:00", + "endtime": "16:00:00", + "shifthours": 8.0, + "basefare": 20.00, + "additionalkm": 1.20, + "additionalcharges": 2.50, + "orders": 15, + "fuelcharge": 5.00 + } + ``` + +### 7.2 Register Logistics Rider profile +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/partners/createrider` +* **Request Body**: + ```json + { + "userid": 12, + "partnerid": 102, + "identificationno": "AB981240A", + "shiftid": 2, + "basefare": 20.00, + "additionalkm": 1.20, + "additionalcharges": 2.50, + "vehicleid": 3, + "vehiclename": "Electric Bike", + "vehicleno": "NSW-RIDER-01", + "model": "Volt-X", + "color": "Red", + "licenseno": "LIC801249", + "insuranceno": "INS-7712", + "insurancedate": "2027-05-20" + } + ``` + +### 7.3 Update Rider Operational Rates Setup +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/partners/updateridersettings` +* **Request Body**: + ```json + { + "userid": 12, + "partnerid": 102, + "basefare": 22.00, + "additionalkm": 1.30, + "additionalcharges": 3.00 + } + ``` + +### 7.4 Update Rider Profile details +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/partners/updaterider` +* **Request Body**: Complete rider register model updating targeted values. + +### 7.5 Create Rider Shift Log (V1 / V2) +* **URLs**: + * `POST https://jupiter.nearle.app/live/api/v1/partners/createriderlog` + * `POST https://jupiter.nearle.app/live/api/v2/partners/createriderlog` +* **Request Body**: + ```json + { + "logid": 0, + "logdate": "2026-05-20", + "userid": 12, + "partnerid": 102, + "shiftid": 2, + "shifthours": 8.0, + "login": "2026-05-20 08:00:00", + "latitude": "-33.8688", + "longitude": "151.2093", + "status": "login" + } + ``` + +### 7.6 Update Rider Shift Log (Logout/Fulfill - V1 / V2) +* **URLs**: + * `PUT https://jupiter.nearle.app/live/api/v1/partners/updateriderlog` + * `PUT https://jupiter.nearle.app/live/api/v2/partners/updateriderlog` +* **Request Body**: + ```json + { + "logid": 4092, + "userid": 12, + "logout": "2026-05-20 16:00:00", + "workhours": 7.8, + "shorthours": 0.2, + "logstatus": 2, + "latitude": "-33.8690", + "longitude": "151.2100", + "status": "logout" + } + ``` + +### 7.7 Create Rider break status log (V1 / V2) +* **URLs**: + * `POST https://jupiter.nearle.app/live/api/v1/partners/createbreaklog` + * `POST https://jupiter.nearle.app/live/api/v2/partners/createbreaklog` +* **Request Body**: + ```json + { + "breakid": 0, + "logid": 4092, + "breakdate": "2026-05-20", + "userid": 12, + "partnerid": 102, + "shiftid": 2, + "breakstart": "2026-05-20 12:00:00", + "latitude": "-33.8688", + "longitude": "151.2093" + } + ``` + +### 7.8 Complete Rider break status log (V1 / V2) +* **URLs**: + * `PUT https://jupiter.nearle.app/live/api/v1/partners/updatebreaklog` + * `PUT https://jupiter.nearle.app/live/api/v2/partners/updatebreaklog` +* **Request Body**: + ```json + { + "breakid": 901, + "breakend": "2026-05-20 12:30:00", + "breakhours": 0.5 + } + ``` + +### 7.9 Submit Rider support request ticket +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/partners/createridersupport` +* **Request Body**: See V1 customer support request format. + +### 7.10 Delete Rider Logs (V2) +* **URL**: `DELETE https://jupiter.nearle.app/live/api/v2/partners/deleteriderlog` +* **Request Body**: + ```json + { + "logid": 4092 + } + ``` + +--- + +## 8. ๐Ÿงพ Invoices & Billing APIs + +### 8.1 Create Invoice Setup +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/invoice/create` +* **Request Body**: + ```json + { + "invoiceid": 0, + "invoiceno": "INV-00802", + "invoicedate": "2026-05-20", + "tenantid": 8, + "customerid": 4082, + "amount": 250.00, + "taxamount": 25.00, + "status": "Unpaid" + } + ``` + +### 8.2 Update Invoice +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/invoice/update` +* **Request Body**: Complete invoice model with targeting invoice ID. + +### 8.3 Update Invoice Payment Status +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/invoice/updatestatus` +* **Request Body**: + ```json + { + "invoiceid": 402, + "status": "Paid", + "paymentmode": "Card", + "reference": "TXN9402801" + } + ``` + +--- + +## 9. ๐Ÿ› ๏ธ Utilities & Webhooks APIs + +### 9.1 Send Single Push Notification +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/notifyuser` +* **Request Body**: + ```json + { + "token": "FCM_DEVICE_TOKEN_ABC", + "notification": { + "title": "Welcome to Nearle!", + "body": "Your registration was successful.", + "sound": "default", + "type": "welcome" + } + } + ``` + +### 9.2 Send Multi-token Broadcast Push Notification +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/sendnotifications` +* **Request Body**: + ```json + { + "token": ["FCM_TOKEN_1", "FCM_TOKEN_2"], + "notification": { + "title": "System Update", + "body": "System will be down for 5 mins.", + "sound": "default", + "type": "standard" + } + } + ``` + +### 9.3 Create Global Logistics Rates Config +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/createapppricing` +* **Request Body**: See Tenant delivery rate setup payload structure. + +### 9.4 Send Push notification to Admin Console +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/notifyadmin` +* **Request Body**: + ```json + { + "token": "ADMIN_FCM_TOKEN", + "notification": { + "title": "Database Threshold", + "body": "Active connection reaches 85%.", + "sound": "default", + "type": "warning" + } + } + ``` + +### 9.5 Send Push notification to Tenant Manager & log history +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/notifytenant` +* **Request Body**: + ```json + { + "token": "TENANT_FCM_TOKEN", + "tenantid": 8, + "moduleid": 6, + "locationid": 45, + "customerid": 4082, + "notification": { + "title": "Low Stock", + "body": "Fresh apples quantity falls below threshold.", + "sound": "default", + "type": "alert" + } + } + ``` + +### 9.6 General Webhook Listener / Receiver +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/webhooks` +* **Request Body**: + ```json + { + "id": "event-uuid-1", + "event": "sale.created", + "timestamp": "2026-05-20T10:20:00Z", + "payload": { ... } + } + ``` + +### 9.7 Third-party GraphQL Webhook Registration +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/register-webhook` +* **Request Body**: + ```json + { + "callbackurl": "https://jupiter.nearle.app/live/api/v1/utils/webhooksreceiver", + "secret": "webhook_secret_key" + } + ``` + +### 9.8 Create Internal Webhook Event Configuration +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/createwebhook` +* **Request Body**: + ```json + { + "webhookid": 0, + "eventname": "sale.created", + "callbackurl": "https://clientapp.com/webhooks", + "status": "Active" + } + ``` + +### 9.9 Shopfront Callback Webhook Receiver +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/webhooksreceiver` +* **Request Body**: Accepts payload format designated by the external Shopfront service. + +### 9.10 Setup Shopfront Inventory GraphQL Webhook +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/webhooks/inventory` +* **Request Body**: See V1 webhook register payload format. + +### 9.11 Setup physical app zone config +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/createapplocationconfig` +* **Request Body**: + ```json + { + "applocationid": 5, + "configid": 6, + "locationname": "Sydney Metro Hub", + "latitude": "-33.8688", + "longitude": "151.2093", + "status": "Active" + } + ``` + +### 9.12 Update physical app zone config +* **URL**: `PUT https://jupiter.nearle.app/live/api/v1/utils/updateapplocationconfig` +* **Request Body**: See V1 app zone setup payload format. + +### 9.13 Ingest App User Credentials in Redis Cache +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/createuserredis` +* **Request Body**: + ```json + { + "userid": 12, + "authtoken": "session_bearer_token_string", + "expiry": 86400 + } + ``` + +### 9.14 Publish Rider Periodic Coordinates Log +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/createriderperiodiclog` +* **Request Body**: + ```json + { + "userid": 12, + "latitude": "-33.8688", + "longitude": "151.2093", + "speed": "15.4", + "heading": "90.0", + "timestamp": "2026-05-20T10:20:00Z" + } + ``` + +### 9.15 Publish Rider Current Duty status +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/utils/createriderstatus` +* **Request Body**: + ```json + { + "userid": 12, + "onduty": 1, + "status": "idle" + } + ``` + +--- + +## 10. ๐Ÿ’ณ Payments APIs + +### 10.1 Issue Customer Payment Charge Request +* **URL**: `POST https://jupiter.nearle.app/live/api/v1/payments/requests/create` +* **Request Body**: + ```json + { + "amount": 250.00, + "currency": "AUD", + "customerid": 4082, + "description": "Invoice Payment INV-00802" + } + ``` diff --git a/index.html b/index.html index 549b3b5..f3e7e41 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - Nearle Express Developer Docs + NearleXpress Developer Docs diff --git a/src/components/Introduction.jsx b/src/components/Introduction.jsx index d64e7c1..c80e09e 100644 --- a/src/components/Introduction.jsx +++ b/src/components/Introduction.jsx @@ -26,7 +26,7 @@ export default function Introduction({ allLegacy, allRest, setActiveTopic }) {

- Nearle Express API + NearleXpress API

diff --git a/src/components/Sidebar.jsx b/src/components/Sidebar.jsx index 150fe0c..cbddfe4 100644 --- a/src/components/Sidebar.jsx +++ b/src/components/Sidebar.jsx @@ -52,7 +52,7 @@ export default function Sidebar({ legacyTopics, restTopics, activeTopic, setActi

- Nearle Express + NearleXpress
diff --git a/src/data/topics.js b/src/data/topics.js index 7df770f..14f4f53 100644 --- a/src/data/topics.js +++ b/src/data/topics.js @@ -1,5 +1,5 @@ export const LEGACY_BASE_URL = 'https://api.workolik.com'; -export const REST_BASE_URL = 'https://fiesta.nearle.app'; +export const REST_BASE_URL = 'https://jupiter.nearle.app'; export const legacyTopics = [ { @@ -17,22 +17,19 @@ export const legacyTopics = [ "name": "getapptypes", "method": "GET", "url": "/api/rest/xpress/utils/getapptypes?tag=DELIVERY", - "description": "List application types filtered by a tag (e.g. DELIVERY).", - "_note": "Host typo in source ('workopi') corrected to api.workolik.com." + "description": "List application types filtered by a tag (e.g. DELIVERY)." }, { "name": "getapplocations", "method": "GET", "url": "/api/rest/xpress/utils/getapplocations?userid=1326", - "description": "List all application locations.", - "_note": "Source name 'Gpplocation' assumed to be 'Getapplocations'." + "description": "List all application locations." }, { "name": "getapppricing", "method": "GET", "url": "/api/rest/xpress/utils/getapppricing?applocationid=1", - "description": "Retrieve app pricing for a given app location.", - "_note": "Source query 'getapppripplocationid=' reconstructed as 'getapppricing?applocationid='." + "description": "Retrieve app pricing for a given app location." }, { "name": "getallpricing", @@ -44,8 +41,7 @@ export const legacyTopics = [ "name": "getapplocationconfig", "method": "GET", "url": "/api/rest/xpress/utils/getapplocationconfig", - "description": "Retrieve the configuration for application locations.", - "_note": "Host typo in source ('workom') corrected to api.workolik.com." + "description": "Retrieve the configuration for application locations." }, { "name": "getsubcategories", @@ -95,8 +91,7 @@ export const legacyTopics = [ "name": "getpartners", "method": "GET", "url": "/api/rest/xpress/partners/getpartners", - "description": "List all partners.", - "_note": "Source URL had a double slash (/api/rest//partners/) โ€” assumed /xpress/partners/." + "description": "List all partners." }, { "name": "getriderpricing", @@ -120,15 +115,13 @@ export const legacyTopics = [ "name": "getriderdetail", "method": "GET", "url": "/api/rest/xpress/partners/getriderdetail?userid=1", - "description": "Detailed information for a specific rider.", - "_note": "Source had 'htapi.workolik.com' (missing 'tps://') โ€” restored to https://api.workolik.com." + "description": "Detailed information for a specific rider." }, { "name": "getridershifts", "method": "GET", "url": "/api/rest/xpress/partners/getridershifts?applocationid=1", - "description": "Get rider shift records for an app location.", - "_note": "Host typo in source ('workk.com') corrected to api.workolik.com." + "description": "Get rider shift records for an app location." } ] }, @@ -141,69 +134,13 @@ export const legacyTopics = [ "name": "gettenants", "method": "GET", "url": "/api/rest/xpress/tenants/gettenants?applocationid=1&status=active&partnerid=44", - "description": "List tenants filtered by app location and status.", - "params": [ - { - "name": "applocationid", - "type": "STRING", - "default": "1" - }, - { - "name": "status", - "type": "STRING", - "default": "active" - }, - { - "name": "partnerid", - "type": "string", - "default": "44" - } - ], - "_note": "Source name 'Gettenan' truncated โ€” assumed 'Gettenants'." + "description": "List tenants filtered by app location and status." }, { "name": "getalltenants", "method": "GET", "url": "/api/rest/xpress/tenants/getalltenants?applocationid=1&moduleid=6&tenanttype=E&keyword=%25%25&status=Active&limit=10&offset=0", - "description": "List all tenants with extensive filters.", - "params": [ - { - "name": "applocationid", - "type": "STRING", - "default": "1" - }, - { - "name": "moduleid", - "type": "STRING", - "default": "6" - }, - { - "name": "tenanttype", - "type": "STRING", - "default": "E" - }, - { - "name": "keyword", - "type": "STRING", - "default": "%%" - }, - { - "name": "status", - "type": "STRING", - "default": "Active" - }, - { - "name": "limit", - "type": "STRING", - "default": "10" - }, - { - "name": "offset", - "type": "STRING", - "default": "0" - } - ], - "_note": "Source query 'status=Actilimit=10' reconstructed as 'status=Active&limit=10'. 'approved=1' param dropped per spec." + "description": "List all tenants with extensive filters." }, { "name": "gettenantinfo", @@ -221,29 +158,25 @@ export const legacyTopics = [ "name": "gettenantsummary", "method": "GET", "url": "/api/rest/xpress/tenants/gettenantsummary?moduleid=6&applocationid=1&tenanttype=E&keyword=%%", - "description": "Aggregated summary for tenants under a module/location.", - "_note": "Source 'tenettenantsummary' reconstructed as 'tenants/gettenantsummary'." + "description": "Aggregated summary for tenants under a module/location." }, { "name": "getpricinglist", "method": "GET", "url": "/api/rest/xpress/tenants/getpricinglist?tenantid=1087", - "description": "Retrieve the tenantโ€™s pricing list.", - "_note": "Source 'getpricingl' truncated โ€” assumed 'getpricinglist'." + "description": "Retrieve the tenant's pricing list." }, { "name": "tenantsearch", "method": "GET", "url": "/api/rest/xpress/tenants/search?keyword=daily&status=active", - "description": "Full-text search for tenants by keyword.", - "_note": "Source name 'Tennatsearch' assumed to be 'Tenantsearch'." + "description": "Full-text search for tenants by keyword." }, { "name": "getorders", "method": "GET", "url": "/api/rest/xpress/tenant/getorders?applocationid=&tenantid=&locationid=&status=", - "description": "List orders scoped to a single tenant.", - "_note": "Source uses /tenant/ (singular) here. Confirm whether this should be /tenants/ or kept as /tenant/." + "description": "List orders scoped to a single tenant." } ] }, @@ -262,15 +195,13 @@ export const legacyTopics = [ "name": "gettenantcustomers", "method": "GET", "url": "/api/rest/xpress/customers/gettenantcustomers?tenantid=1087&limit=10&offset=0", - "description": "List customers under a specific tenant.", - "_note": "Source path 'xpresustomers' reconstructed as 'xpress/customers'." + "description": "List customers under a specific tenant." }, { "name": "searchcustomers", "method": "GET", "url": "/api/rest/xpress/customers/searchcustomers?tenantid=1087&keyword=%%", - "description": "Search customers by keyword within a tenant.", - "_note": "Source name 'Searchcumer' assumed to be 'Searchcustomers'." + "description": "Search customers by keyword within a tenant." } ] }, @@ -283,15 +214,13 @@ export const legacyTopics = [ "name": "getdeliveries", "method": "GET", "url": "/api/rest/xpress/deliveries/getdeliveries?tenantid=10&status=Delivered&fromdate=2026-05-01T00:00:00&todate=2026-05-05T23:59:59&keyword=%john%&limit=10&offset=0", - "description": "List deliveries with filters: tenant, status, date range, keyword.", - "_note": "Source query 'tenantid=10=Delivered' reconstructed as 'tenantid=10&status=Delivered'." + "description": "List deliveries with filters: tenant, status, date range, keyword." }, { "name": "getdeliveryqueues", "method": "GET", "url": "/api/rest/xpress/deliveries/getdeliveryqueues?userid=1277&fdate=2025-12-30T00:00:00 &tdate=2025-12-30T23:59:59", - "description": "Retrieve delivery queue snapshots for a user/date range.", - "_note": "Source name 'tdeliveryqueues' truncated โ€” assumed 'Getdeliveryqueues'." + "description": "Retrieve delivery queue snapshots for a user/date range." }, { "name": "deliverysummary", @@ -303,8 +232,7 @@ export const legacyTopics = [ "name": "getriderbydelivery", "method": "GET", "url": "/api/rest/xpress/deliveries/getriderbydelivery/?applocationid=&tenantid=&locationid=&fromdate=&todate=&keyword=", - "description": "Map riders to deliveries within a location and date range.", - "_note": "Source URL was missing 'https' scheme โ€” restored." + "description": "Map riders to deliveries within a location and date range." } ] }, @@ -367,8 +295,7 @@ export const legacyTopics = [ "name": "getinvoiceinsight", "method": "GET", "url": "/api/rest/xpress/invoice/getinvoiceinsight?tenantid=916", - "description": "Retrieve invoice insights and statistics for a tenant.", - "_note": "Source name 'Getinvoinsights' assumed to be 'Getinvoiceinsight'." + "description": "Retrieve invoice insights and statistics for a tenant." } ] }, @@ -388,1151 +315,647 @@ export const legacyTopics = [ ]; export const restTopics = [ - { - "id": "utils", - "name": "Utils", - "description": "Shared lookup endpoints roles, locations, configs, app types, pricing.", - "endpoints": [ - { - "name": "Fetch application categories by tag (Web)", - "method": "GET", - "url": "/live/api/v1/web/utils/getapptypes?tag=customer", - "description": "Fetch application categories by tag (Web)" - }, - { - "name": "Resolve subcategories (Web)", - "method": "GET", - "url": "/live/api/v1/web/utils/getsubcategories?moduleid=1&categoryid=2", - "description": "Resolve subcategories (Web)" - }, - { - "name": "Fetch system active geofence details (Web)", - "method": "GET", - "url": "/live/api/v1/web/utils/getapplocations?applocationid=1", - "description": "Fetch system active geofence details (Web)" - }, - { - "name": "Fetch global system categories configurations (Web)", - "method": "GET", - "url": "/live/api/v1/web/utils/getappcategories", - "description": "Fetch global system categories configurations (Web)" - }, - { - "name": "Get mobile geofence configuration details (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/utils/getapplocationconfig?applocationid=1", - "description": "Get mobile geofence configuration details (Mobile)" - }, - { - "name": "Get mobile active geofence details (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/utils/getapplocations?applocationid=1", - "description": "Get mobile active geofence details (Mobile)" - }, - { - "name": "Fetch mobile app types by tag (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/utils/getapptypes?tag=rider", - "description": "Fetch mobile app types by tag (Mobile)" - }, - { - "name": "Fetch global payment & geofence configs (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/utils/getappconfig?configid=1", - "description": "Fetch global payment & geofence configs (Mobile)" - }, - { - "name": "Get mobile category subcategories list (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/utils/getsubcategories?moduleid=1&categoryid=2", - "description": "Get mobile category subcategories list (Mobile)" - }, - { - "name": "Fetch mobile app categories configurations (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/utils/getappcategories", - "description": "Fetch mobile app categories configurations (Mobile)" - } - ] - }, { "id": "users", "name": "Users", - "description": "Manage users and roles across the Xpress platform.", + "description": "User authentication, profile management, and role-based access across web and mobile.", "endpoints": [ { - "name": "Get all users (Web)", + "name": "Get user by ID (V1)", "method": "GET", - "url": "/live/api/v1/web/users/getallusers?roleid=2&tenantid=8&pageno=1&pagesize=10&keyword=john", - "description": "Get all users (Web)" + "url": "/live/api/v1/users/getusers?userid=12", + "description": "Get a specific user profile by ID." }, { - "name": "Get a specific user profile by ID (Web)", + "name": "Get user by username", "method": "GET", - "url": "/live/api/v1/web/users/getusers?userid=12", - "description": "Get a specific user profile by ID (Web)" + "url": "/live/api/v1/users/getusers?username=rider_joe", + "description": "Get a specific user profile by username." }, { - "name": "Get a specific user profile by ID (Mobile)", + "name": "Get all users (V1)", "method": "GET", - "url": "/live/api/v1/mob/users/getusers?userid=15", - "description": "Get a specific user profile by ID (Mobile)" + "url": "/live/api/v1/users/getallusers?roleid=2&tenantid=8&pageno=1&pagesize=10&keyword=john", + "description": "List all users with filters: role, tenant, keyword, pagination." }, { - "name": "Operator/User orders board (Web)", + "name": "Get all users (V2)", "method": "GET", - "url": "/live/api/v1/web/orders/user/getorders?appuserid=12&status=processing&pageno=1&pagesize=10", - "description": "Operator/User orders board (Web)" + "url": "/live/api/v2/users/getallusers?roleid=2&tenantid=8&pageno=1&pagesize=10&keyword=john", + "description": "List all users (V2) with filters: role, tenant, keyword, pagination." }, { - "name": "Tenant Web Panel Login", + "name": "User Login", "method": "POST", - "url": "/live/api/v1/web/users/tenant/weblogin", - "description": "Tenant Web Panel Login", + "url": "/live/api/v1/users/login", + "description": "Generic staff / admin login.", "body": { - "authname": "merchant_admin_01", - "password": "PasswordSecurityHash99!" + "username": "admin_nearle", + "password": "secure_password_hash" } }, { - "name": "General Application Login", + "name": "Tenant Login", "method": "POST", - "url": "/live/api/v1/web/users/applogin", - "description": "General Application Login", + "url": "/live/api/v1/users/tenant/login", + "description": "Tenant manager login.", "body": { - "authname": "system_operator", - "password": "OperatorSafePasswordSecret", - "deviceid": "device_uuid_8828b", + "username": "tenant_manager", + "password": "secure_password_hash" + } + }, + { + "name": "Partner Login", + "method": "POST", + "url": "/live/api/v1/users/partner/login", + "description": "Logistics partner login.", + "body": { + "username": "logistics_partner_ceo", + "password": "secure_password_hash" + } + }, + { + "name": "Rider Login (V1)", + "method": "POST", + "url": "/live/api/v1/users/rider/login", + "description": "Rider authentication (V1).", + "body": { + "username": "rider_john", + "password": "rider_password" + } + }, + { + "name": "Rider Login with PIN & FCM (V2)", + "method": "POST", + "url": "/live/api/v2/users/rider/login", + "description": "Rider authentication with PIN and FCM token (V2).", + "body": { + "username": "rider_john", + "pin": 1234, + "userfcmtoken": "fcm_device_token_abc123", + "deviceid": "device_uuid_981249", "devicetype": "android" } }, { - "name": "Register New Web Staff Account", + "name": "Tenant Web Login", "method": "POST", - "url": "/live/api/v1/web/users/create", - "description": "Register New Web Staff Account", + "url": "/live/api/v1/users/tenant/weblogin", + "description": "Tenant web panel login.", "body": { - "authname": "tenant_staff_steve", - "firstname": "Steve", - "lastname": "Rogers", - "password": "SteveSecurePassword12", - "email": "steve.rogers@merchant.com", - "dialcode": "+61", - "contactno": "412345678", - "roleid": 3, + "username": "tenant_web_admin", + "password": "secure_password_hash" + } + }, + { + "name": "Create User (V1)", + "method": "POST", + "url": "/live/api/v1/users/create", + "description": "Register a new app user.", + "body": { + "userid": 0, + "authname": "rider_joe", + "firstname": "Joe", + "lastname": "Smith", + "password": "joe_password_raw", + "email": "joe.smith@nearle.app", + "contactno": "+61400111222", + "roleid": 4, "pin": 1234, - "address": "100 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "status": "active" + "locationid": 45, + "applocationid": 5, + "status": "Active" } }, { - "name": "Update Web Staff User Details", - "method": "PUT", - "url": "/live/api/v1/web/users/update", - "description": "Update Web Staff User Details", - "body": { - "userid": 15, - "firstname": "Steve", - "lastname": "Captain", - "email": "steve.captain@merchant.com", - "contactno": "412345678", - "address": "200 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", - "status": "active" - } - }, - { - "name": "Rider/Merchant Mobile App Login", + "name": "Create User (V2)", "method": "POST", - "url": "/live/api/v1/mob/users/tenant/login", - "description": "Rider/Merchant Mobile App Login", + "url": "/live/api/v2/users/create", + "description": "Register a new app user (V2).", "body": { - "authname": "rider_john_01", - "password": "RiderSecretKey" - } - }, - { - "name": "Create Mobile Staff User", - "method": "POST", - "url": "/live/api/v1/mob/users/create", - "description": "Create Mobile Staff User Payload: (Uses the same schema as Web Register New Web Staff Account)", - "body": { - "authname": "tenant_staff_steve", - "firstname": "Steve", - "lastname": "Rogers", - "password": "SteveSecurePassword12", - "email": "steve.rogers@merchant.com", - "dialcode": "+61", - "contactno": "412345678", - "roleid": 3, + "userid": 0, + "authname": "rider_joe", + "firstname": "Joe", + "lastname": "Smith", + "password": "joe_password_raw", + "email": "joe.smith@nearle.app", + "contactno": "+61400111222", + "roleid": 4, "pin": 1234, - "address": "100 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "status": "active" + "locationid": 45, + "applocationid": 5, + "status": "Active" } }, { - "name": "Update Mobile Staff Details", + "name": "Update User (V1)", "method": "PUT", - "url": "/live/api/v1/mob/users/update", - "description": "Update Mobile Staff Details Payload: (Uses the same schema as Web Update Web Staff User Details)", + "url": "/live/api/v1/users/update", + "description": "Update app user details.", "body": { - "userid": 15, - "firstname": "Steve", - "lastname": "Captain", - "email": "steve.captain@merchant.com", - "contactno": "412345678", - "address": "200 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", - "status": "active" - } - } - ] - }, - { - "id": "partners", - "name": "Partners", - "description": "Partners, riders, locations, shifts, and rider pricing.", - "endpoints": [ - { - "name": "Partner fleet orders board (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/partner/getorders?partnerid=1&status=processing&pageno=1&pagesize=10", - "description": "Partner fleet orders board (Web)" - }, - { - "name": "Get active riders (Web)", - "method": "GET", - "url": "/live/api/v1/web/partners/getriders?partnerid=1&applocationid=1&userid=12&tenantid=8", - "description": "Get active riders (Web)" - }, - { - "name": "Get partner profiles (Web)", - "method": "GET", - "url": "/live/api/v1/web/partners/getpartners?partnerid=1&applocationid=1&userid=12", - "description": "Get partner profiles (Web)" - }, - { - "name": "Get rider shifts (Web)", - "method": "GET", - "url": "/live/api/v1/web/partners/getridershifts?applocationid=1", - "description": "Get rider shifts (Web)" - }, - { - "name": "Get location configurations (Web)", - "method": "GET", - "url": "/live/api/v1/web/partners/getlocations?userid=12&configid=1", - "description": "Get location configurations (Web)" - }, - { - "name": "Get rider log sheet (Web)", - "method": "GET", - "url": "/live/api/v1/web/partners/getriderlogs?partnerid=1&applocationid=1&fromdate=2026-05-20&todate=2026-05-20", - "description": "Get rider log sheet (Web)" - }, - { - "name": "Get partner profiles (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/partners/getpartners?partnerid=1&applocationid=1&userid=12", - "description": "Get partner profiles (Mobile)" - }, - { - "name": "Get rider log sheet (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/partners/getriderlogs?partnerid=1&applocationid=1&fromdate=2026-05-20&todate=2026-05-20", - "description": "Get rider log sheet (Mobile)" - }, - { - "name": "Get rider operational info (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/partners/getriderinfo?userid=15", - "description": "Get rider operational info (Mobile)" - }, - { - "name": "Get active riders list (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/partners/getriders?partnerid=1&applocationid=1&userid=15&tenantid=8", - "description": "Get active riders list (Mobile)" - } - ] - }, - { - "id": "tenants", - "name": "Tenants", - "description": "Tenant accounts info, locations, customers, orders, pricing, summary.", - "endpoints": [ - { - "name": "Tenant orders board (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/tenant/getorders?tenantid=8&locationid=2&status=processing&pageno=1&pagesize=10", - "description": "Tenant orders board (Web)" - }, - { - "name": "Get specific tenant store orders (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/orders/tenant/getorders?tenantid=8&locationid=2&pageno=1&pagesize=10", - "description": "Get specific tenant store orders (Mobile)" - }, - { - "name": "Search registered tenants (Web)", - "method": "GET", - "url": "/live/api/v1/web/tenants/search?status=Active&keyword=Fresh", - "description": "Search registered tenants (Web)" - }, - { - "name": "Search tenants by keyword (Web)", - "method": "GET", - "url": "/live/api/v1/web/tenants/searchbykeyword?keyword=daily", - "description": "Search tenants by keyword (Web)" - }, - { - "name": "Get all active tenants catalog (Web)", - "method": "GET", - "url": "/live/api/v1/web/tenants/getalltenants?applocationid=1&status=Active&pageno=1&pagesize=10", - "description": "Get all active tenants catalog (Web)" - }, - { - "name": "Get outlet locations assigned to a tenant (Web)", - "method": "GET", - "url": "/live/api/v1/web/tenants/gettenantlocations?tenantid=8", - "description": "Get outlet locations assigned to a tenant (Web)" - }, - { - "name": "Retrieve delivery time slots config (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/gettenantslot", - "description": "Retrieve delivery time slots config (Mobile)" - }, - { - "name": "Search tenants by keyword (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/searchbykeyword?keyword=grocery", - "description": "Search tenants by keyword (Mobile)" - }, - { - "name": "Retrieve tenants associated with a customer (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/getcustomertenants?customerid=4082&tenant=0", - "description": "Retrieve tenants associated with a customer (Mobile)" - }, - { - "name": "Get outlet locations linked to a tenant (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/gettenantlocations?tenantid=8", - "description": "Get outlet locations linked to a tenant (Mobile)" - }, - { - "name": "Get logistics pricing slabs for a tenant (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/gettenantpricing?tenantid=8&applocationid=1", - "description": "Get logistics pricing slabs for a tenant (Mobile)" - }, - { - "name": "Get staff members under a tenant store (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/getstaffs?tenantid=8", - "description": "Get staff members under a tenant store (Mobile)" - }, - { - "name": "Get tenant detailed profile info (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/tenants/gettenantinfo?tenantid=8&locationid=2", - "description": "Get tenant detailed profile info (Mobile)" - }, - { - "name": "Link Customer Profile to Tenant Store", - "method": "POST", - "url": "/live/api/v1/web/tenants/createtenantcustomer", - "description": "Link Customer Profile to Tenant Store", - "body": { - "moduleid": 1, - "tenantid": 8, - "locationid": 2, - "customerid": 4082, - "customerlocationid": 554, - "status": 1 - } - }, - { - "name": "Create New Geofenced Store Location", - "method": "POST", - "url": "/live/api/v1/web/tenants/createlocation", - "description": "Create New Geofenced Store Location", - "body": { - "tenantid": 8, - "applocationid": 1, - "moduleid": 1, - "locationname": "Hawthorn Daily Fresh Store", - "email": "hawthorn.store@merchant.com", - "contactno": "399443322", - "latitude": "-37.8222", - "longitude": "145.0384", - "address": "12 Glenferrie Rd", - "suburb": "Hawthorn", - "city": "Melbourne", - "state": "VIC", - "postcode": "3122", - "opentime": "07:00:00", - "closetime": "22:00:00", - "partnerid": 1, - "deliveryradius": 5000, - "deliverymins": 30, - "cancelsecs": 60, - "status": "Active" - } - }, - { - "name": "Map Tenant Location Linkage Entry", - "method": "POST", - "url": "/live/api/v1/web/tenants/createtenantlocation", - "description": "Map Tenant Location Linkage Entry Payload: (Uses the same schema as Create New Geofenced Store Location)", - "body": { - "tenantid": 8, - "applocationid": 1, - "moduleid": 1, - "locationname": "Hawthorn Daily Fresh Store", - "email": "hawthorn.store@merchant.com", - "contactno": "399443322", - "latitude": "-37.8222", - "longitude": "145.0384", - "address": "12 Glenferrie Rd", - "suburb": "Hawthorn", - "city": "Melbourne", - "state": "VIC", - "postcode": "3122", - "opentime": "07:00:00", - "closetime": "22:00:00", - "partnerid": 1, - "deliveryradius": 5000, - "deliverymins": 30, - "cancelsecs": 60, - "status": "Active" - } - }, - { - "name": "Update Store Location Configurations", - "method": "PUT", - "url": "/live/api/v1/web/tenants/updatelocation", - "description": "Update Store Location Configurations", - "body": { - "locationid": 2, - "tenantid": 8, - "applocationid": 1, - "locationname": "Richmond Daily Fresh Store", - "email": "richmond.store@merchant.com", - "contactno": "399887766", - "latitude": "-37.8212", - "longitude": "144.9984", - "address": "Shop 4, 100 Church St", - "suburb": "Richmond", - "city": "Melbourne", - "state": "VIC", - "postcode": "3121", - "opentime": "07:00:00", - "closetime": "22:00:00", - "deliveryradius": 8000, - "deliverymins": 45, - "cancelsecs": 120, - "status": "Active" - } - }, - { - "name": "Modify Tenant Location Linkage Config", - "method": "PUT", - "url": "/live/api/v1/web/tenants/updatetenantlocation", - "description": "Modify Tenant Location Linkage Config Payload: (Uses the same schema as Update Store Location Configurations)", - "body": { - "locationid": 2, - "tenantid": 8, - "applocationid": 1, - "locationname": "Richmond Daily Fresh Store", - "email": "richmond.store@merchant.com", - "contactno": "399887766", - "latitude": "-37.8212", - "longitude": "144.9984", - "address": "Shop 4, 100 Church St", - "suburb": "Richmond", - "city": "Melbourne", - "state": "VIC", - "postcode": "3121", - "opentime": "07:00:00", - "closetime": "22:00:00", - "deliveryradius": 8000, - "deliverymins": 45, - "cancelsecs": 120, - "status": "Active" - } - }, - { - "name": "Mobile Link Customer Profile to Tenant Store", - "method": "POST", - "url": "/live/api/v1/mob/tenants/createtenantcustomer", - "description": "Mobile Link Customer Profile to Tenant Store Payload: (Uses the same schema as Web Link Customer Profile to Tenant Store)", - "body": { - "moduleid": 1, - "tenantid": 8, - "locationid": 2, - "customerid": 4082, - "customerlocationid": 554, - "status": 1 - } - }, - { - "name": "Mobile Create Geofenced Store Location", - "method": "POST", - "url": "/live/api/v1/mob/tenants/createlocation", - "description": "Mobile Create Geofenced Store Location Payload: (Uses the same schema as Web Create New Geofenced Store Location)", - "body": { - "tenantid": 8, - "applocationid": 1, - "moduleid": 1, - "locationname": "Hawthorn Daily Fresh Store", - "email": "hawthorn.store@merchant.com", - "contactno": "399443322", - "latitude": "-37.8222", - "longitude": "145.0384", - "address": "12 Glenferrie Rd", - "suburb": "Hawthorn", - "city": "Melbourne", - "state": "VIC", - "postcode": "3122", - "opentime": "07:00:00", - "closetime": "22:00:00", - "partnerid": 1, - "deliveryradius": 5000, - "deliverymins": 30, - "cancelsecs": 60, - "status": "Active" - } - }, - { - "name": "Onboard/Create New Staff Member Account", - "method": "POST", - "url": "/live/api/v1/mob/tenants/createstaff", - "description": "Onboard/Create New Staff Member Account Payload: (Uses the same schema as Web Register New Web Staff Account)", - "body": { - "authname": "tenant_staff_steve", - "firstname": "Steve", - "lastname": "Rogers", - "password": "SteveSecurePassword12", - "email": "steve.rogers@merchant.com", - "dialcode": "+61", - "contactno": "412345678", - "roleid": 3, + "userid": 12, + "authname": "rider_joe", + "firstname": "Joseph", + "lastname": "Smith", + "email": "joseph.smith@nearle.app", + "contactno": "+61400111222", + "roleid": 4, "pin": 1234, - "address": "100 Flinders St", - "suburb": "Melbourne", - "city": "Melbourne", - "state": "VIC", - "postcode": "3000", "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "status": "active" - } - }, - { - "name": "Onboard New Tenant & Admin Profile (Joint Creation)", - "method": "POST", - "url": "/live/api/v1/mob/tenants/createtenantuser", - "description": "Onboard New Tenant & Admin Profile (Joint Creation)", - "body": { - "tenantname": "Fresh Organic Greens", - "configid": 1, - "partnerid": 1, - "moduleid": 1, - "tenanttype": "Enterprise", - "registrationno": "ABN-19028-299", - "tenanttoken": "tenant_fcm_token_hash_value_xyz", - "companyname": "Fresh Organic Greens Pty Ltd", - "devicetype": "web", - "firstname": "Arthur", - "primaryemail": "arthur@organicgreens.com", - "primarycontact": "488999000", - "categoryid": 2, - "subcategoryid": 12, - "address": "400 Chapel St", - "suburb": "South Yarra", - "city": "Melbourne", - "state": "VIC", - "postcode": "3141", - "latitude": "-37.8398", - "longitude": "144.9953", - "tenantimage": "https://storage.nearle.app/tenants/organic_greens.png", - "tenantinfo": "Direct farm-to-table organic vegetables delivery provider.", - "paymode1": 1, - "paymode2": 1, - "promotion": 0, - "minorder": 15, - "applocationid": 1, - "approved": 1, - "status": "Active", - "tenantlocations": { - "locationname": "South Yarra Main Warehouse", - "email": "southyarra@organicgreens.com", - "contactno": "488999000", - "latitude": "-37.8398", - "longitude": "144.9953", - "address": "400 Chapel St", - "suburb": "South Yarra", - "city": "Melbourne", - "state": "VIC", - "postcode": "3141", - "opentime": "06:00:00", - "closetime": "21:00:00", - "partnerid": 1, - "deliveryradius": 6000, - "deliverymins": 30, - "cancelsecs": 90, - "status": "Active" - } - } - }, - { - "name": "Mobile Update Store Location Configurations", - "method": "PUT", - "url": "/live/api/v1/mob/tenants/updatelocation", - "description": "Mobile Update Store Location Configurations Payload: (Uses the same schema as Web Update Store Location Configurations)", - "body": { - "locationid": 2, - "tenantid": 8, - "applocationid": 1, - "locationname": "Richmond Daily Fresh Store", - "email": "richmond.store@merchant.com", - "contactno": "399887766", - "latitude": "-37.8212", - "longitude": "144.9984", - "address": "Shop 4, 100 Church St", - "suburb": "Richmond", - "city": "Melbourne", - "state": "VIC", - "postcode": "3121", - "opentime": "07:00:00", - "closetime": "22:00:00", - "deliveryradius": 8000, - "deliverymins": 45, - "cancelsecs": 120, + "locationid": 45, + "applocationid": 5, "status": "Active" } + }, + { + "name": "Update User (V2)", + "method": "PUT", + "url": "/live/api/v2/users/update", + "description": "Update app user details (V2).", + "body": { + "userid": 12, + "authname": "rider_joe", + "firstname": "Joseph", + "lastname": "Smith", + "email": "joseph.smith@nearle.app", + "contactno": "+61400111222", + "roleid": 4, + "pin": 1234, + "tenantid": 8, + "locationid": 45, + "applocationid": 5, + "status": "Active" + } + }, + { + "name": "Delete User", + "method": "DELETE", + "url": "/live/api/v1/users/delete", + "description": "Remove an app user account.", + "body": { + "userid": 12 + } } ] }, { "id": "customers", "name": "Customers", - "description": "Customer accounts, lookups, and search.", + "description": "Customer registration, profile management, address book, and support requests.", "endpoints": [ { - "name": "Fetch customer profile by ID or Contact (Mobile)", + "name": "Get customer by ID", "method": "GET", - "url": "/live/api/v1/mob/customers/getbyid?customerid=4082&contactno=9876543210", - "description": "Fetch customer profile by ID or Contact (Mobile)" + "url": "/live/api/v1/customers/getbyid?customerid=4082", + "description": "Fetch customer profile by ID." }, { - "name": "Get customer saved address locations (Mobile)", + "name": "Get customer by contact number", "method": "GET", - "url": "/live/api/v1/mob/customers/getcustomerlocation?customerid=4082", - "description": "Get customer saved address locations (Mobile)" + "url": "/live/api/v1/customers/getbyno?contactno=%2B61411222333", + "description": "Fetch customer profile by contact number." }, { - "name": "Get customer logged support requests (Mobile)", + "name": "Get customers by tenant ID", "method": "GET", - "url": "/live/api/v1/mob/customers/getcustomerrequests?customerid=4082&pageno=1&pagesize=10", - "description": "Get customer logged support requests (Mobile)" + "url": "/live/api/v1/customers/getbytid?tenantid=8&pageno=1&pagesize=10", + "description": "Retrieve customers linked to a tenant." }, { - "name": "Search customer names under a tenant (Mobile)", + "name": "Get tenant customers", "method": "GET", - "url": "/live/api/v1/mob/customers/search?keyword=Jane&tenantid=8", - "description": "Search customer names under a tenant (Mobile)" + "url": "/live/api/v1/customers/gettenantcustomers?tenantid=8&pageno=1&pagesize=10", + "description": "Retrieve customers linked to a tenant location/branch." }, { - "name": "Retrieve customers linked to a tenant location (Mobile)", + "name": "Get customer locations", "method": "GET", - "url": "/live/api/v1/mob/customers/gettenantcustomers?tenantid=8&locationid=2&pageno=1&pagesize=10", - "description": "Retrieve customers linked to a tenant location (Mobile)" + "url": "/live/api/v1/customers/getcustomerlocation?customerid=4082", + "description": "Get customer saved address locations." }, { - "name": "Retrieve merchant customers list (Web)", + "name": "Get customers by app location", "method": "GET", - "url": "/live/api/v1/web/customers/gettenantcustomers?tenantid=8&locationid=2&pageno=1&pagesize=10&keyword=jane", - "description": "Retrieve merchant customers list (Web)" + "url": "/live/api/v1/customers/getcustomersbyapplocation?applocationid=5", + "description": "Retrieve customers linked to a general app location zone." }, { - "name": "Individual consumer invoice histories (Web)", + "name": "Get all customers", "method": "GET", - "url": "/live/api/v1/web/orders/customer/getorders?customerid=4082&status=delivered&pageno=1&pagesize=10", - "description": "Individual consumer invoice histories (Web)" + "url": "/live/api/v1/customers/getallcustomers?pageno=1&pagesize=10&keyword=smith", + "description": "Retrieve all registered customers with paginated keywords." }, { - "name": "Passwordless OTP Login (via Phone)", + "name": "Get customer summary", + "method": "GET", + "url": "/live/api/v1/customers/getcustomersummary?tenantid=8", + "description": "Get customer counts and classifications summaries under a tenant." + }, + { + "name": "Search customers", + "method": "GET", + "url": "/live/api/v1/customers/search?keyword=Jane&tenantid=8", + "description": "Search customer names under a tenant." + }, + { + "name": "Get customer support requests", + "method": "GET", + "url": "/live/api/v1/customers/getcustomerrequests?customerid=4082&pageno=1&pagesize=10", + "description": "Get customer logged support requests." + }, + { + "name": "Customer Login (OTP)", "method": "POST", - "url": "/live/api/v1/mob/customers/login", - "description": "Passwordless OTP Login (via Phone)", + "url": "/live/api/v1/customers/login", + "description": "Passwordless OTP login via contact number.", "body": { - "contactno": "0499888777" + "contactno": "+61411222333" } }, { - "name": "Register Customer Account", + "name": "Register Customer", "method": "POST", - "url": "/live/api/v1/mob/customers/create", - "description": "Register Customer Account", + "url": "/live/api/v1/customers/create", + "description": "Register a new customer account.", "body": { + "customerid": 0, + "tenantid": 8, + "applocationid": 5, + "firstname": "Jane", + "lastname": "Doe", + "email": "jane.doe@example.com", + "contactno": "+61411222333", + "dob": "1992-06-15", + "gender": "Female", + "status": "Active" + } + }, + { + "name": "Update Customer Profile", + "method": "PUT", + "url": "/live/api/v1/customers/update", + "description": "Update customer profile details.", + "body": { + "customerid": 4082, + "tenantid": 8, + "applocationid": 5, "firstname": "Jane", "lastname": "Smith", - "profileimage": "https://storage.nearle.app/avatars/jane_smith.jpg", + "email": "jane.smith@example.com", + "contactno": "+61411222333", + "dob": "1992-06-15", "gender": "Female", - "dob": "1994-11-20", - "dialcode": "+61", - "contactno": "499888777", - "email": "jane.smith@gmail.com", - "deviceid": "uuid_7728b991a", - "devicetype": "ios", - "authmode": 1, - "customertoken": "fcm_token_device_hash_xyz", - "address": "456 Oak Avenue", - "suburb": "Richmond", - "city": "Melbourne", - "state": "VIC", - "postcode": "3121", - "latitude": "-37.8212", - "longitude": "144.9984", - "applocationid": 1, - "status": 1, - "intro": "Regular subscriber of organic morning deliveries." + "status": "Active" } }, { - "name": "Save New Geofenced Location Address", + "name": "Create Customer Address", "method": "POST", - "url": "/live/api/v1/mob/customers/createlocations", - "description": "Save New Geofenced Location Address", + "url": "/live/api/v1/customers/createlocations", + "description": "Save a new geofenced address location for a customer.", + "body": [ + { + "locationid": 0, + "customerid": 4082, + "locationname": "Home Address", + "address": "100 Berry St, North Sydney NSW 2060", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" + } + ] + }, + { + "name": "Delete Customer", + "method": "DELETE", + "url": "/live/api/v1/customers/delete", + "description": "Remove a customer profile.", "body": { - "customerid": 4082, - "address": "123 High Street", - "suburb": "Prahran", - "city": "Melbourne", - "state": "VIC", - "postcode": "3181", - "latitude": "-37.8502", - "longitude": "144.9924", - "primaryaddress": 1, - "status": 1 + "customerid": 4082 } }, { - "name": "Log Customer Support Ticket Request", + "name": "Submit Customer Support Request", "method": "POST", - "url": "/live/api/v1/mob/customers/createcustomerrequest", - "description": "Log Customer Support Ticket Request", + "url": "/live/api/v1/customers/createcustomerrequest", + "description": "Log a customer support ticket.", "body": { "customerid": 4082, - "tenantid": 8, - "apptypeid": 1, - "locationid": 2, - "subject": "Delay in Morning Milk Delivery", - "remarks": "Order scheduled for 7:00 AM hasn't arrived.", - "status": 1 - } - }, - { - "name": "Update Customer Profile Details", - "method": "PUT", - "url": "/live/api/v1/mob/customers/update", - "description": "Update Customer Profile Details", - "body": { - "customerid": 4082, - "firstname": "Jane", - "lastname": "Miller", - "email": "jane.miller@gmail.com", - "contactno": "499888777", - "address": "789 Pine Road", - "suburb": "Hawthorn", - "city": "Melbourne", - "state": "VIC", - "postcode": "3122", - "status": 1 + "subject": "Missing items in order ORD-000843", + "description": "Apples were missing from my fresh produce bag.", + "category": "Refund/Missing Items" } } ] }, { - "id": "deliveries", - "name": "Deliveries", - "description": "Delivery records, queues, and rider-delivery joins.", + "id": "tenants", + "name": "Tenants", + "description": "Tenant onboarding, location management, staff, pricing, promotions, and support.", "endpoints": [ { - "name": "Get deliveries performance summaries (Web)", + "name": "Get tenant info", "method": "GET", - "url": "/live/api/v1/web/deliveries/deliverysummary?tenantid=8&partnerid=1&userid=12&applocationid=1&locationid=2&fromdate=2026-05-20&todate=2026-05-20", - "description": "Get deliveries performance summaries (Web)" + "url": "/live/api/v1/tenants/gettenantinfo?tenantid=8", + "description": "Fetch complete metadata and credentials of a single tenant." }, { - "name": "Get daily delivery insights (Web)", + "name": "Search tenants", "method": "GET", - "url": "/live/api/v1/web/deliveries/getdeliveryinsight?tenantid=8", - "description": "Get daily delivery insights (Web)" + "url": "/live/api/v1/tenants/search?keyword=sydney", + "description": "Search tenant registries by name or email keyword." }, { - "name": "Get location deliveries summary (Web)", + "name": "Get tenant staff", "method": "GET", - "url": "/live/api/v1/web/deliveries/getlocationsummary?tenantid=8", - "description": "Get location deliveries summary (Web)" + "url": "/live/api/v1/tenants/getstaffs?tenantid=8&locationid=45", + "description": "Query list of staff roster belonging to a tenant location." }, { - "name": "Get deliveries financial report summary (Web)", + "name": "Get tenants by app location", "method": "GET", - "url": "/live/api/v1/web/deliveries/getreportsummary?tenantid=8&partnerid=1&userid=12&applocationid=1&fromdate=2026-05-01&todate=2026-05-20", - "description": "Get deliveries financial report summary (Web)" + "url": "/live/api/v1/tenants/gettenants?applocationid=5", + "description": "Get active tenants mapped under an application hub zone." }, { - "name": "Get fleet rider summary metrics (Web)", + "name": "Get all tenants", "method": "GET", - "url": "/live/api/v1/web/deliveries/getridersummary?applocationid=1&partnerid=1&tenantid=8&fromdate=2026-05-20&todate=2026-05-20", - "description": "Get fleet rider summary metrics (Web)" + "url": "/live/api/v1/tenants/getalltenants?pageno=1&pagesize=10&keyword=grocery", + "description": "Query complete list of tenants with pagination." }, { - "name": "Get master deliveries board (Web)", + "name": "Get tenant summary", "method": "GET", - "url": "/live/api/v1/web/deliveries/getdeliveries?tenantid=8&fromdate=2026-05-20&todate=2026-05-20", - "description": "Get master deliveries board (Web)" + "url": "/live/api/v1/tenants/gettenantsummary?tenantid=8", + "description": "Query consolidated location metrics under a tenant." }, { - "name": "Get mobile dispatch summaries (Mobile)", + "name": "Get cloud store status", "method": "GET", - "url": "/live/api/v1/mob/deliveries/deliverysummary?userid=15&fromdate=2026-05-20&todate=2026-05-20", - "description": "Get mobile dispatch summaries (Mobile)" + "url": "/live/api/v1/tenants/getcloudstore?tenantid=8", + "description": "Check if tenant uses online cloud inventory storage." }, { - "name": "Get mobile deliveries board (Mobile)", + "name": "Get tenant locations", "method": "GET", - "url": "/live/api/v1/mob/deliveries/getdeliveries?userid=15&status=assigned", - "description": "Get mobile deliveries board (Mobile)" + "url": "/live/api/v1/tenants/gettenantlocations?tenantid=8&pageno=1&pagesize=10", + "description": "Query physical warehouses/outlets mapped to a tenant." }, { - "name": "Fetch rider active shift deliveries queue (Mobile)", + "name": "Get tenant time slots", "method": "GET", - "url": "/live/api/v1/mob/deliveries/getdeliveryqueues?userid=15&fromdate=2026-05-20&todate=2026-05-20", - "description": "Fetch rider active shift deliveries queue (Mobile)" + "url": "/live/api/v1/tenants/gettenantslots?tenantid=8&locationid=45", + "description": "Get operational time slots for orders fulfillment." }, { - "name": "Initialize Logistics Delivery Dispatch (Assign Rider)", + "name": "Get tenant location details", + "method": "GET", + "url": "/live/api/v1/tenants/gettenantlocation?locationid=45", + "description": "Query coordinate and contact details of a single store location." + }, + { + "name": "Get tenant pricing", + "method": "GET", + "url": "/live/api/v1/tenants/gettenantpricing?tenantid=8", + "description": "Get delivery pricing rules configured for a tenant." + }, + { + "name": "Get tenant support requests", + "method": "GET", + "url": "/live/api/v1/tenants/gettenantrequests?tenantid=8&pageno=1&pagesize=10", + "description": "Query support ticket requests created by a tenant." + }, + { + "name": "Get pricing list", + "method": "GET", + "url": "/live/api/v1/tenants/getpricinglist?tenantid=8", + "description": "Query pricing list configured for a tenant." + }, + { + "name": "Get tenant promotions", + "method": "GET", + "url": "/live/api/v1/tenants/gettenantpromotions?tenantid=8", + "description": "Query promotional active marketing discount settings." + }, + { + "name": "Get location summary (V2)", + "method": "GET", + "url": "/live/api/v2/tenants/getlocationsummary?tenantid=8", + "description": "Query location high level metric summary." + }, + { + "name": "Get tenant staff summary (V2)", + "method": "GET", + "url": "/live/api/v2/tenants/gettenantstaffsummary?tenantid=8&locationid=45", + "description": "Query active staff roster status metrics." + }, + { + "name": "Get tenant rider summary (V2)", + "method": "GET", + "url": "/live/api/v2/tenants/gettenantridersummary?tenantid=8&locationid=45", + "description": "Query active dispatch rider metric counts." + }, + { + "name": "Get customer tenants (V2)", + "method": "GET", + "url": "/live/api/v2/tenants/getcustomertenants?customerid=12&applocationid=5", + "description": "Query list of tenants servicing a customer location." + }, + { + "name": "Create Tenant", "method": "POST", - "url": "/live/api/v1/web/deliveries/createdeliveries", - "description": "Initialize Logistics Delivery Dispatch (Assign Rider)", - "body": [ - { - "orderheaderid": 2100, - "applocationid": 1, - "partnerid": 1, - "tenantid": 8, - "moduleid": 1, - "locationid": 2, - "userid": 15, - "orderid": "ORD-19028-4", - "deliverydate": "2026-05-20", - "orderstatus": "assigned", - "assigntime": "2026-05-20 12:10:00", - "itemcount": 2, - "orderamount": 12.58, - "customerid": 4082, - "pickupcustomer": "Central Merchant Warehouse", - "pickupcontactno": "987654321", - "pickuplocationid": 2, - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplon": "144.9631", - "deliverycustomerid": 4082, - "deliverylocationid": 554, - "deliverycustomer": "Jane Smith", - "deliverycontactno": "499888777", - "deliveryaddress": "456 Oak Avenue, Richmond, VIC, 3121", - "droplat": "-37.8212", - "droplon": "144.9984", - "deliverycharges": 3, - "deliveryamt": 15.58, - "deliverytype": "standard", - "paymenttype": 1 - } - ] - }, - { - "name": "Update Rider Pickup Status", - "method": "PUT", - "url": "/live/api/v1/web/deliveries/updatedelivery", - "description": "Update Rider Pickup Status", + "url": "/live/api/v1/tenants/create", + "description": "Create a new tenant account.", "body": { - "deliveryid": 8871, - "orderheaderid": 2100, - "userid": 15, - "orderstatus": "picked", - "pickuptime": "2026-05-20 12:20:00", - "riderslat": "-37.8140", - "riderslon": "144.9640" + "tenantid": 0, + "tenantname": "Sydney Fresh Grocers", + "status": "Active" } }, { - "name": "Initialize Mobile Logistics Delivery", + "name": "Create Tenant Location", "method": "POST", - "url": "/live/api/v1/mob/deliveries/createdeliveries", - "description": "Initialize Mobile Logistics Delivery Payload: (Uses the same schema as Web Initialize Logistics Delivery Dispatch)", - "body": [ - { - "orderheaderid": 2100, - "applocationid": 1, - "partnerid": 1, - "tenantid": 8, - "moduleid": 1, - "locationid": 2, - "userid": 15, - "orderid": "ORD-19028-4", - "deliverydate": "2026-05-20", - "orderstatus": "assigned", - "assigntime": "2026-05-20 12:10:00", - "itemcount": 2, - "orderamount": 12.58, - "customerid": 4082, - "pickupcustomer": "Central Merchant Warehouse", - "pickupcontactno": "987654321", - "pickuplocationid": 2, - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplon": "144.9631", - "deliverycustomerid": 4082, - "deliverylocationid": 554, - "deliverycustomer": "Jane Smith", - "deliverycontactno": "499888777", - "deliveryaddress": "456 Oak Avenue, Richmond, VIC, 3121", - "droplat": "-37.8212", - "droplon": "144.9984", - "deliverycharges": 3, - "deliveryamt": 15.58, - "deliverytype": "standard", - "paymenttype": 1 - } - ] - }, - { - "name": "Rider Update Dispatch Status (Delivered & GPS Tracking)", - "method": "PUT", - "url": "/live/api/v1/mob/deliveries/updatedelivery", - "description": "Rider Update Dispatch Status (Delivered & GPS Tracking)", - "body": { - "deliveryid": 8871, - "orderheaderid": 2100, - "userid": 15, - "orderstatus": "delivered", - "deliverytime": "2026-05-20 12:45:00", - "riderslat": "-37.8210", - "riderslon": "144.9980", - "actualkms": "4.2", - "feedback": "Handed over safely.", - "smsdelivery": 1 - } - } - ] - }, - { - "id": "orders", - "name": "Orders", - "description": "Order records, details, and aggregate summaries.", - "endpoints": [ - { - "name": "Filtered dynamic orders board (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/getorders?tenantid=8&locationid=2&status=processing&pageno=1&pagesize=10", - "description": "Filtered dynamic orders board (Web)" - }, - { - "name": "System Admin orders board (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/admin/getorders?applocationid=1&status=processing&pageno=1&pagesize=10", - "description": "System Admin orders board (Web)" - }, - { - "name": "Get order dashboard stats summary (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/getordersummary?tenantid=8&fromdate=2026-05-01&todate=2026-05-20", - "description": "Get order dashboard stats summary (Web)" - }, - { - "name": "Get location orders summary (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/getlocationsummary?tenantid=8", - "description": "Get location orders summary (Web)" - }, - { - "name": "Get annual orders insights analytics (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/getorderinsight?tenantid=8", - "description": "Get annual orders insights analytics (Web)" - }, - { - "name": "Get order detailed lines (Web)", - "method": "GET", - "url": "/live/api/v1/web/orders/getorderdetails?orderheaderid=2099", - "description": "Get order detailed lines (Web)" - }, - { - "name": "Get customer order history (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/orders/getcustomerorders?customerid=4082&pageno=1&pagesize=10", - "description": "Get customer order history (Mobile)" - }, - { - "name": "Get mobile order detailed lines (Mobile)", - "method": "GET", - "url": "/live/api/v1/mob/orders/getorderdetails?orderheaderid=2099", - "description": "Get mobile order detailed lines (Mobile)" - }, - { - "name": "Create New Web Order (Flat JSON Format)", - "method": "POST", - "url": "/live/api/v1/web/orders/createorder", - "description": "Create New Web Order (Flat JSON Format)", + "url": "/live/api/v1/tenants/createlocation", + "description": "Create a new tenant branch/outlet location.", "body": { "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "moduleid": 1, - "customerid": 4082, - "orderstatus": "pending", - "deliverytype": "standard", - "deliverytime": "2026-05-20 18:00:00", - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplong": "144.9631", - "pickupcustomer": "Central Plaza Merchant", - "pickupcontactno": "399887766", - "deliveryaddress": "Apt 4B, Sunset Boulevard, Richmond", - "deliverylat": "-37.8212", - "deliverylong": "144.9984", - "orderamount": 11.48, - "taxamount": 1.1, - "ordervalue": 12.58, - "itemcount": 2, - "paymenttype": 1, - "paymentstatus": 0, - "deliverycharge": 3, - "ordernotes": "Please ring doorbell twice.", - "items": [ - { - "productid": 105, - "productname": "Organic Whole Milk 1L", - "orderqty": 2, - "price": 3.99, - "taxpercentage": 10, - "taxamount": 0.8, - "productsumprice": 7.98 - }, - { - "productid": 109, - "productname": "Salted Butter 250g", - "orderqty": 1, - "price": 3.5, - "taxpercentage": 10, - "taxamount": 0.35, - "productsumprice": 3.5 - } - ] + "locationname": "North Sydney Outlet", + "address": "45 Berry St", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" } }, { - "name": "Update Order Status & Financial Flag", - "method": "PUT", - "url": "/live/api/v1/web/orders/updateorder", - "description": "Update Order Status & Financial Flag", - "body": { - "orderheaderid": 2099, - "orderstatus": "ready", - "paymentstatus": 1, - "remarks": "Order packed and waiting for rider assignment." - } - }, - { - "name": "Create Mobile Order (Wrapped JSON Format)", + "name": "Create Tenant User Setup", "method": "POST", - "url": "/live/api/v1/mob/orders/createorder", - "description": "Create Mobile Order (Wrapped JSON Format)", + "url": "/live/api/v1/tenants/createtenantuser", + "description": "Link a user account to a tenant.", "body": { - "orders": { - "tenantid": 8, - "locationid": 2, - "applocationid": 1, - "moduleid": 1, - "customerid": 4082, - "orderstatus": "pending", - "deliverytype": "standard", - "deliverytime": "2026-05-20 18:00:00", - "pickupaddress": "Shop 4, Central Plaza, Melbourne", - "pickuplat": "-37.8136", - "pickuplong": "144.9631", - "pickupcustomer": "Central Plaza Merchant", - "pickupcontactno": "399887766", - "deliveryaddress": "Apt 4B, Sunset Boulevard, Richmond", - "deliverylat": "-37.8212", - "deliverylong": "144.9984", - "orderamount": 11.48, - "taxamount": 1.1, - "ordervalue": 12.58, - "itemcount": 2, - "paymenttype": 1, - "paymentstatus": 0, - "deliverycharge": 3, - "ordernotes": "Leave in parcel locker.", - "items": [ - { - "productid": 105, - "productname": "Organic Whole Milk 1L", - "orderqty": 2, - "price": 3.99, - "taxpercentage": 10, - "taxamount": 0.8, - "productsumprice": 7.98 - }, - { - "productid": 109, - "productname": "Salted Butter 250g", - "orderqty": 1, - "price": 3.5, - "taxpercentage": 10, - "taxamount": 0.35, - "productsumprice": 3.5 - } - ] - } + "tenantid": 8, + "userid": 12, + "status": "Active" } }, { - "name": "Mobile Update Order Status", + "name": "Update Tenant", "method": "PUT", - "url": "/live/api/v1/mob/orders/updateorder", - "description": "Mobile Update Order Status Payload: (Uses the same schema as Web Update Order Status & Financial Flag)", + "url": "/live/api/v1/tenants/update", + "description": "Update tenant details.", "body": { - "orderheaderid": 2099, - "orderstatus": "ready", - "paymentstatus": 1, - "remarks": "Order packed and waiting for rider assignment." + "tenantid": 8, + "tenantname": "Sydney Premium Grocers Group", + "status": "Active" + } + }, + { + "name": "Update Tenant Location (V1)", + "method": "PUT", + "url": "/live/api/v1/tenants/updatelocation", + "description": "Update tenant location details.", + "body": { + "locationid": 45, + "tenantid": 8, + "locationname": "North Sydney Hub Store", + "address": "45 Berry St", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" + } + }, + { + "name": "Create Partner Association", + "method": "PUT", + "url": "/live/api/v1/tenants/createpartneruser", + "description": "Associate a logistics partner with a tenant.", + "body": { + "tenantid": 8, + "partnerid": 102, + "status": "Active" + } + }, + { + "name": "Add Customer to Tenant", + "method": "POST", + "url": "/live/api/v1/tenants/createtenantcustomer", + "description": "Add a customer to a tenant's database.", + "body": { + "tenantid": 8, + "customerid": 4082, + "status": "Active" + } + }, + { + "name": "Create Tenant Staff", + "method": "POST", + "url": "/live/api/v1/tenants/createstaff", + "description": "Add a new staff member to a tenant roster.", + "body": { + "userid": 15, + "tenantid": 8, + "locationid": 45, + "status": "Active" + } + }, + { + "name": "Update Tenant Staff", + "method": "PUT", + "url": "/live/api/v1/tenants/updatestaff", + "description": "Update a tenant staff member's status.", + "body": { + "userid": 15, + "tenantid": 8, + "locationid": 45, + "status": "Inactive" + } + }, + { + "name": "Create Tenant Pricing Config", + "method": "POST", + "url": "/live/api/v1/tenants/createpricing", + "description": "Create delivery rate configuration for a tenant.", + "body": { + "tenantid": 8, + "basefare": 8.50, + "additionalkm": 1.50, + "additionalcharges": 2.00, + "fuelcharge": 0.50 + } + }, + { + "name": "Create Tenant Support Request", + "method": "POST", + "url": "/live/api/v1/tenants/createtenantrequest", + "description": "Log a support ticket for a tenant.", + "body": { + "tenantid": 8, + "subject": "Payout mismatch on invoice INV-00802", + "description": "Calculated payout did not include fuel tax bonus.", + "category": "Billing" + } + }, + { + "name": "Create Tenant Promotion", + "method": "POST", + "url": "/live/api/v1/tenants/createtenantpromotions", + "description": "Create a discount promotion configuration for a tenant.", + "body": { + "tenantid": 8, + "promocode": "FREESHIP50", + "discountamount": 10.00, + "minordervalue": 50.00, + "status": "Active" + } + }, + { + "name": "Create Tenant Location (V2)", + "method": "POST", + "url": "/live/api/v2/tenants/createtenantlocation", + "description": "Create a new physical tenant outlet (V2).", + "body": { + "tenantid": 8, + "locationname": "North Sydney Outlet", + "address": "45 Berry St", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" + } + }, + { + "name": "Update Tenant Location (V2)", + "method": "PUT", + "url": "/live/api/v2/tenants/updatetenantlocation", + "description": "Update tenant physical location details (V2).", + "body": { + "locationid": 45, + "tenantid": 8, + "locationname": "North Sydney Hub Store", + "address": "45 Berry St", + "suburb": "North Sydney", + "city": "Sydney", + "state": "NSW", + "postcode": "2060", + "latitude": "-33.8398", + "longitude": "151.2058", + "status": "Active" } } ] @@ -1540,241 +963,1086 @@ export const restTopics = [ { "id": "products", "name": "Products", - "description": "Product catalog, categories, and subcategories.", + "description": "Product catalog, variants, discounts, stock management, and location mapping.", "endpoints": [ { - "name": "Get product subcategories (Web)", + "name": "Get all products (V1)", "method": "GET", - "url": "/live/api/v1/web/products/getproductsubcategories?categoryid=2&tenantid=8", - "description": "Get product subcategories (Web)" + "url": "/live/api/v1/products/getallproducts?categoryid=4&subcategoryid=14&productid=101&applocationid=5&tenantid=8&locationid=45&keyword=strawberry&productstatus=available&approve=approved&pageno=1&pagesize=10", + "description": "Retrieve all registered products with extensive filters." }, { - "name": "Get products stock counts (Web)", + "name": "Get product info", "method": "GET", - "url": "/live/api/v1/web/products/getproductscount?tenantid=8&categoryid=2&subcategoryid=12&approve=1", - "description": "Get products stock counts (Web)" + "url": "/live/api/v1/products/getproductinfo?productid=101", + "description": "Fetch detailed information of a single product." }, { - "name": "Get all global categories (Web)", + "name": "Get product categories", "method": "GET", - "url": "/live/api/v1/web/products/getproductcategories", - "description": "Get all global categories (Web)" + "url": "/live/api/v1/products/getproductcategories", + "description": "List all general product categories." }, { - "name": "Get specific product variants (Web)", + "name": "Get product subcategories (V1)", "method": "GET", - "url": "/live/api/v1/web/products/getproductvariants?tenantid=8&subcategoryid=12", - "description": "Get specific product variants (Web)" + "url": "/live/api/v1/products/getproductsubcategories?categoryid=4&tenantid=8", + "description": "List product subcategories under a specific category and tenant." }, { - "name": "Get master catalog listings (Web)", + "name": "Get products by subcategory", "method": "GET", - "url": "/live/api/v1/web/products/getcatalougeproducts?tenantid=8&locationid=2&subcategoryid=12&keyword=&pageno=1&pagesize=10", - "description": "Get master catalog listings (Web)" + "url": "/live/api/v1/products/getproductsbysubcategory?categoryid=4&tenantid=8&applocationid=5&locationid=45&keyword=berry", + "description": "Get products grouped under subcategories." }, { - "name": "Get live stocks catalog (Web)", + "name": "Get product count", "method": "GET", - "url": "/live/api/v1/web/products/getproductstocks?tenantid=8&locationid=2", - "description": "Get live stocks catalog (Web)" + "url": "/live/api/v1/products/getproductscount?tenantid=8&categoryid=4&subcategoryid=14&approve=approved", + "description": "Retrieve product counts categorized by tenant and subcategory." }, { - "name": "Get dynamic stock statement ledger (Web)", + "name": "Get product by variant", "method": "GET", - "url": "/live/api/v1/web/products/getstockstatement?tenantid=8&locationid=2&subcategoryid=12&pageno=1&pagesize=10&keyword=", - "description": "Get dynamic stock statement ledger (Web)" + "url": "/live/api/v1/products/getproductbyvariant?tenantid=8&variantid=22", + "description": "Fetch product detail matches by Variant ID." }, { - "name": "Get outlet geofenced inventory (Web)", + "name": "Get product variants", "method": "GET", - "url": "/live/api/v1/web/products/getlocationproducts?tenantid=8&locationid=2&subcategoryid=12&pageno=1&pagesize=10", - "description": "Get outlet geofenced inventory (Web)" + "url": "/live/api/v1/products/getproductvariants?tenantid=8&subcategoryid=14", + "description": "List variants available under a tenant subcategory." }, { - "name": "Get outlet category inventory summary (Web)", + "name": "Get product discounts", "method": "GET", - "url": "/live/api/v1/web/products/getlocationproductsummary?tenantid=8&locationid=2", - "description": "Get outlet category inventory summary (Web)" + "url": "/live/api/v1/products/getproductdiscounts?tenantid=8", + "description": "Get active product discount rules under a tenant." }, { - "name": "Master products search board (Web)", + "name": "Get catalogue products (V2)", "method": "GET", - "url": "/live/api/v1/web/products/getallproducts?tenantid=8&locationid=2&keyword=milk&pageno=1&pagesize=10", - "description": "Master products search board (Web)" + "url": "/live/api/v2/products/getcatalougeproducts?tenantid=8&locationid=45&subcategoryid=14&keyword=apple&pageno=1&pagesize=10", + "description": "Retrieve products catalog for customer order creation." }, { - "name": "Get product details by variant ID (Mobile)", + "name": "Get location products (V2)", "method": "GET", - "url": "/live/api/v1/mob/products/getproductbyvariant?tenantid=8&variantid=4", - "description": "Get product details by variant ID (Mobile)" + "url": "/live/api/v2/products/getlocationproducts?tenantid=8&locationid=45&subcategoryid=14&keyword=apple&pageno=1&pagesize=10", + "description": "Retrieve products mapped to a physical location." }, { - "name": "Get product subcategories (Mobile)", + "name": "Get location product summary (V2)", "method": "GET", - "url": "/live/api/v1/mob/products/getproductsubcategories?categoryid=2&tenantid=8", - "description": "Get product subcategories (Mobile)" + "url": "/live/api/v2/products/getlocationproductsummary?tenantid=8&locationid=45", + "description": "Retrieve summary metrics of products in a location." }, { - "name": "Search product catalog (Mobile)", + "name": "Get stock statement (V2)", "method": "GET", - "url": "/live/api/v1/mob/products/getallproducts?keyword=milk&pageno=1&pagesize=10", - "description": "Search product catalog (Mobile)" + "url": "/live/api/v2/products/getstockstatement?tenantid=8&locationid=45&subcategoryid=14&keyword=apple&pageno=1&pagesize=10", + "description": "Query product stock ledger statement history." }, { - "name": "Get structured home subcategory list (Mobile)", + "name": "Get product stocks (V2)", "method": "GET", - "url": "/live/api/v1/mob/products/getproductsbysubcategory?categoryid=2&tenantid=8&locationid=2", - "description": "Get structured home subcategory list (Mobile)" + "url": "/live/api/v2/products/getproductstocks?tenantid=8&locationid=45", + "description": "Query current active product stock levels." }, { - "name": "Get mobile geofenced outlet products (Mobile)", + "name": "Get category-wise inventory summary (V2)", "method": "GET", - "url": "/live/api/v1/mob/products/getlocationproducts?tenantid=8&locationid=2&pageno=1&pagesize=20", - "description": "Get mobile geofenced outlet products (Mobile)" + "url": "/live/api/v2/products/getproductcategorywisesummary?tenantid=8&locationid=45&subcategoryid=14", + "description": "Query category-wise inventory summary statistics." }, { - "name": "Add Multi-Product Stock Entry", + "name": "Get stock statement summary (V2)", + "method": "GET", + "url": "/live/api/v2/products/getstockstatementsummary?tenantid=8&locationid=45", + "description": "Fetch stock statement summaries." + }, + { + "name": "Create Product", "method": "POST", - "url": "/live/api/v1/web/products/createproductstock", - "description": "Add Multi-Product Stock Entry", - "body": [ - { - "tenantid": 8, - "locationid": 2, - "productid": 105, - "quantity": 150, - "stocktype": "credit", - "status": "active" - }, - { - "tenantid": 8, - "locationid": 2, - "productid": 109, - "quantity": 80, - "stocktype": "credit", - "status": "active" - } - ] - }, - { - "name": "Create Master Product Catalog Item", - "method": "POST", - "url": "/live/api/v1/web/products/create", - "description": "Create Master Product Catalog Item", + "url": "/live/api/v1/products/create", + "description": "Create a new catalog product.", "body": { - "applocationid": 1, + "productid": 0, + "productname": "Organic Strawberries 500g", + "categoryid": 4, + "subcategoryid": 14, "tenantid": 8, - "categoryid": 2, - "subcategoryid": 12, - "productname": "Fresh Cow Milk 1L", - "productimage": "https://storage.nearle.app/products/cow_milk_1l.png", - "productdesc": "Pure farm fresh cow milk pasteurized.", - "productsku": "MILK-COW-1L", - "productunit": "Litre", - "unitvalue": "1", - "productcost": 1.8, - "retailprice": 3.5, - "taxpercent": 5, - "productstock": 100, + "applocationid": 5, + "productcost": 6.80, + "unitvalue": "500g", "productstatus": "available", - "approve": 1 + "sku": "STRAW-500G-ORG", + "status": "Active" } }, { - "name": "Map Product to Specific Outlet Location", + "name": "Update Product", + "method": "PUT", + "url": "/live/api/v1/products/update", + "description": "Update product attributes.", + "body": { + "productid": 101, + "productname": "Premium Organic Strawberries 500g", + "categoryid": 4, + "subcategoryid": 14, + "tenantid": 8, + "applocationid": 5, + "productcost": 7.20, + "unitvalue": "500g", + "productstatus": "available", + "sku": "STRAW-500G-ORG", + "status": "Active" + } + }, + { + "name": "Delete Product", + "method": "DELETE", + "url": "/live/api/v1/products/delete", + "description": "Remove a catalog product.", + "body": { + "productid": 101 + } + }, + { + "name": "Create Product Variant", "method": "POST", - "url": "/live/api/v1/web/products/createproductlocation", - "description": "Map Product to Specific Outlet Location", + "url": "/live/api/v1/products/createproductvariant", + "description": "Create a product variant entry.", + "body": { + "productid": 101, + "variantname": "Mega Pack 1Kg", + "variantcost": 12.50, + "sku": "STRAW-1KG-ORG", + "status": "Active" + } + }, + { + "name": "Create Product Discount", + "method": "POST", + "url": "/live/api/v1/products/createproductdiscount", + "description": "Setup a product discount rule.", + "body": { + "productid": 101, + "discountpercentage": 15.00, + "status": "Active" + } + }, + { + "name": "Map Product to Location (V2)", + "method": "POST", + "url": "/live/api/v2/products/createproductlocation", + "description": "Set product location mapping.", "body": [ { + "productid": 101, + "locationid": 45, "tenantid": 8, - "locationid": 2, - "productid": 105, - "catlougeid": 1, - "minquantity": 5, - "maxquantity": 200, - "price": 3.75, "status": "Active" } ] }, { - "name": "Create Product Variant Metadata", + "name": "Update Product Location Map (V2)", + "method": "PUT", + "url": "/live/api/v2/products/updateproductlocation", + "description": "Update product location mapping.", + "body": { + "productid": 101, + "locationid": 45, + "status": "Inactive" + } + }, + { + "name": "Add Stock Entry (V2)", "method": "POST", - "url": "/live/api/v1/web/products/createproductvariant", - "description": "Create Product Variant Metadata", - "body": { - "tenantid": 8, - "variantname": "1.5 Liters Bottle", - "categoryid": 2, - "subcategoryid": 12, - "status": "active" - } + "url": "/live/api/v2/products/createproductstock", + "description": "Add inbound/outbound stock entry.", + "body": [ + { + "stockid": 0, + "productid": 101, + "locationid": 45, + "tenantid": 8, + "qty": 50, + "transactiontype": "in", + "reference": "PURCHASE-PO9812", + "createdby": 12 + } + ] }, { - "name": "Update Master Product Details", + "name": "Update Product Stock (V2)", "method": "PUT", - "url": "/live/api/v1/web/products/update", - "description": "Update Master Product Details", + "url": "/live/api/v2/products/updateproductstock", + "description": "Update product stock quantity.", "body": { - "productid": 105, - "productname": "Organic Farm Cow Milk 1L", - "productcost": 1.95, - "retailprice": 3.75, - "productstock": 120, - "productstatus": "available" - } - }, - { - "name": "Update Product Outlet Constraints", - "method": "PUT", - "url": "/live/api/v1/web/products/updateproductlocation", - "description": "Update Product Outlet Constraints", - "body": { - "productlocationid": 25, + "productid": 101, + "locationid": 45, "tenantid": 8, - "locationid": 2, - "productid": 105, - "minquantity": 10, - "maxquantity": 150, - "price": 3.99, - "status": "Active" + "qty": 45, + "transactiontype": "out", + "reference": "ADJUSTMENT-RECON", + "createdby": 12 + } + } + ] + }, + { + "id": "orders", + "name": "Orders", + "description": "Order creation, status management, and analytics across all scopes.", + "endpoints": [ + { + "name": "Get orders (V1)", + "method": "GET", + "url": "/live/api/v1/orders/getorders?fromdate=2026-05-01&todate=2026-05-20&status=pending&keyword=sydney&roleid=2&tenantid=8&locationid=45&pageno=1&pagesize=10", + "description": "Query all orders with custom filters." + }, + { + "name": "Get partner orders (V1)", + "method": "GET", + "url": "/live/api/v1/orders/partner/getorders?partnerid=102&status=pending&pageno=1&pagesize=10", + "description": "Query partner dispatch tasks." + }, + { + "name": "Get tenant orders (V1)", + "method": "GET", + "url": "/live/api/v1/orders/tenant/getorders?tenantid=8&locationid=45&pageno=1&pagesize=10", + "description": "Query tenant physical store orders." + }, + { + "name": "Get customer orders (V1)", + "method": "GET", + "url": "/live/api/v1/orders/customer/getorders?customerid=12&pageno=1&pagesize=10", + "description": "Query specific customer orders." + }, + { + "name": "Get tenant location summary (V1)", + "method": "GET", + "url": "/live/api/v1/orders/tenant/getlocationsummary?tenantid=8", + "description": "Retrieve order location count summary under a tenant." + }, + { + "name": "Get order summary (V1)", + "method": "GET", + "url": "/live/api/v1/orders/getordersummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20", + "description": "Query consolidated order values summaries." + }, + { + "name": "Get location summary (V1)", + "method": "GET", + "url": "/live/api/v1/orders/getlocationsummary?tenantid=8", + "description": "Query order status counts grouped by app location hubs." + }, + { + "name": "Get order insight (V1)", + "method": "GET", + "url": "/live/api/v1/orders/getorderinsight?tenantid=8", + "description": "Get monthly order counts grouped by app locations." + }, + { + "name": "Get order details (V1)", + "method": "GET", + "url": "/live/api/v1/orders/getorderdetails?orderheaderid=9821", + "description": "Retrieve item line details and pricing summaries for an order." + }, + { + "name": "Get orders by location (V1)", + "method": "GET", + "url": "/live/api/v1/orders/getorderbylocations?customerid=12&applocationid=5", + "description": "Get customer orders filtered by application location zone." + }, + { + "name": "Get orders (V2)", + "method": "GET", + "url": "/live/api/v2/orders/getorders?fromdate=2026-05-01&todate=2026-05-20&status=pending&tenantid=8&locationid=45&pageno=1&pagesize=10", + "description": "Query active orders list (V2)." + }, + { + "name": "Get order insight (V2)", + "method": "GET", + "url": "/live/api/v2/orders/getorderinsight?tenantid=8", + "description": "Retrieve monthly counts per tenant store location." + }, + { + "name": "Get order summary (V2)", + "method": "GET", + "url": "/live/api/v2/orders/getordersummary?tenantid=8&fromdate=2026-05-01&todate=2026-05-20", + "description": "Fetch daily consolidated order summary values." + }, + { + "name": "Get location summary (V2)", + "method": "GET", + "url": "/live/api/v2/orders/getlocationsummary?tenantid=8", + "description": "Retrieve tenant location-wise active order classifications." + }, + { + "name": "Get customer orders (V3)", + "method": "GET", + "url": "/live/api/v3/orders/getcustomerorders?customerid=12&tenantid=8&orderstatus=delivered&pageno=1&pagesize=10", + "description": "Search customer orders with keywords and paging." + }, + { + "name": "Create Order (V1)", + "method": "POST", + "url": "/live/api/v1/orders/createorder", + "description": "Create a simple order.", + "body": { + "orders": { + "tenantid": 8, + "locationid": 45, + "customerid": 4082, + "orderamount": 13.60, + "itemcount": 2, + "items": [ + { + "productid": 101, + "productname": "Organic Strawberries 500g", + "orderqty": 2.0, + "unitprice": 6.80 + } + ] + } } }, { - "name": "Purge Master Product Catalog Entry", + "name": "Create Multiple Orders (V1)", + "method": "POST", + "url": "/live/api/v1/orders/createorders", + "description": "Create multiple orders in bulk.", + "body": [ + { + "orders": { + "tenantid": 8, + "locationid": 45, + "customerid": 4082, + "orderamount": 6.80, + "itemcount": 1, + "items": [ + { + "productid": 101, + "productname": "Organic Strawberries 500g", + "orderqty": 1.0, + "unitprice": 6.80 + } + ] + } + } + ] + }, + { + "name": "Update Order", + "method": "PUT", + "url": "/live/api/v1/orders/updateorder", + "description": "Update order status and financial details.", + "body": { + "orderheaderid": 9821, + "orderstatus": "delivered", + "deliveryamt": 12.50 + } + }, + { + "name": "Update Multiple Orders", + "method": "PUT", + "url": "/live/api/v1/orders/updatemultipleorders", + "description": "Update multiple order statuses in bulk.", + "body": [ + { + "orderheaderid": 9821, + "orderstatus": "picked" + }, + { + "orderheaderid": 9822, + "orderstatus": "picked" + } + ] + }, + { + "name": "Create Order with Coordinates (V2)", + "method": "POST", + "url": "/live/api/v2/orders/createorder", + "description": "Create an order with pickup and drop coordinate details.", + "body": { + "orders": { + "tenantid": 8, + "orderamount": 13.60, + "itemcount": 1, + "items": [ + { + "productid": 101, + "productname": "Organic Strawberries 500g", + "orderqty": 2.0, + "unitprice": 6.80 + } + ] + }, + "pickup": { + "customerid": 15, + "address": "Pickup Main Warehouse St", + "latitude": "-33.8688", + "longitude": "151.2093" + }, + "drop": { + "customerid": 4082, + "address": "100 Berry St, North Sydney NSW 2060", + "latitude": "-33.8398", + "longitude": "151.2058" + } + } + }, + { + "name": "Create Order with Auto Stock-Out (V3)", + "method": "POST", + "url": "/live/api/v3/orders/createorder", + "description": "Create order with automatic stock deduction record.", + "body": { + "orders": { + "tenantid": 8, + "locationid": 45, + "customerid": 4082, + "orderamount": 13.60, + "itemcount": 2, + "items": [ + { + "productid": 101, + "productname": "Organic Strawberries 500g", + "orderqty": 2.0, + "unitprice": 6.80 + } + ] + } + } + } + ] + }, + { + "id": "deliveries", + "name": "Deliveries", + "description": "Dispatch management, transit tracking, delivery logs, and summary reports.", + "endpoints": [ + { + "name": "Get deliveries (V2)", + "method": "GET", + "url": "/live/api/v2/deliveries/getdeliveries?tenantid=8&locationid=45&partnerid=102&userid=12&status=pending&fromdate=2026-05-01&todate=2026-05-20&keyword=sydney&pageno=1&pagesize=10", + "description": "Query parameterized deliveries list with search keyword (V2)." + }, + { + "name": "Get deliveries (V3)", + "method": "GET", + "url": "/live/api/v3/deliveries/getdeliveries?tenantid=8&locationid=45&partnerid=102&userid=12&status=pending&fromdate=2026-05-01&todate=2026-05-20&keyword=sydney&pageno=1&pagesize=10", + "description": "Query parameterized deliveries list with search keyword (V3)." + }, + { + "name": "Get delivery logs (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getdeliverylogs?deliveryid=405", + "description": "Query event transaction logs trail of a delivery." + }, + { + "name": "Get delivery logs (V2)", + "method": "GET", + "url": "/live/api/v2/deliveries/getdeliverylogs?deliveryid=405", + "description": "Query event log history of a delivery (V2)." + }, + { + "name": "Get delivery logs (V3)", + "method": "GET", + "url": "/live/api/v3/deliveries/getdeliverylogs?deliveryid=405", + "description": "Query event log history of a delivery (V3)." + }, + { + "name": "Get delivery summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/deliverysummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20", + "description": "Query delivery status classification values." + }, + { + "name": "Get location summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getlocationsummary?tenantid=8", + "description": "Retrieve active deliveries count statistics grouped by app location." + }, + { + "name": "Get location summary (V2)", + "method": "GET", + "url": "/live/api/v2/deliveries/getlocationsummary?tenantid=8", + "description": "Query active deliveries summary grouped by location." + }, + { + "name": "Get delivery queues (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getdeliveryqueues?tenantid=8&locationid=45", + "description": "Get current dispatch tasks queue." + }, + { + "name": "Get picked delivery queues (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getdeliveryqueuespicked?tenantid=8&locationid=45", + "description": "Get picked dispatch tasks from queue." + }, + { + "name": "Get delivery queues (V2)", + "method": "GET", + "url": "/live/api/v2/deliveries/getdeliveryqueues?tenantid=8&locationid=45", + "description": "Query active dispatch task queues." + }, + { + "name": "Get delivery insight (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getdeliveryinsight?tenantid=8", + "description": "Get monthly delivery performance summaries." + }, + { + "name": "Get report summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getreportsummary?tenantid=8&fromdate=2026-05-01&todate=2026-05-20", + "description": "Get complete distance, COD collections, and tasks report summaries." + }, + { + "name": "Get report location summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getreportlocationsummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20", + "description": "Get report summaries grouped by tenant store location." + }, + { + "name": "Get rider location report summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getriderlocationreportsummary?tenantid=8&userid=12&fromdate=2026-05-01&todate=2026-05-20", + "description": "Query report stats per rider per tenant store location." + }, + { + "name": "Get rider summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getridersummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20", + "description": "Retrieve active riders shift and duty metric summaries." + }, + { + "name": "Get rider location summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getriderlocationsummary?tenantid=8&locationid=45&fromdate=2026-05-01&todate=2026-05-20", + "description": "Retrieve rider metrics summary grouped by store location." + }, + { + "name": "Get rider by delivery (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getriderbydelivery?deliveryid=405", + "description": "Fetch details of rider assigned to a delivery task." + }, + { + "name": "Get last delivery by contact (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getlastdeliverybycontact?contactno=%2B61411222333", + "description": "Retrieve last delivery detail matching customer contact number." + }, + { + "name": "Get user report summary (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getuserreportsummary?userid=12&fromdate=2026-05-01&todate=2026-05-20", + "description": "Get specific rider performance report summary." + }, + { + "name": "Get user delivery logs (V1)", + "method": "GET", + "url": "/live/api/v1/deliveries/getuserdeliverylogs?userid=12&fromdate=2026-05-01&todate=2026-05-20", + "description": "Query raw logs of rider activity." + }, + { + "name": "Create Delivery (V1)", + "method": "POST", + "url": "/live/api/v1/deliveries/createdelivery", + "description": "Register a new dispatch task.", + "body": { + "deliveryid": 0, + "orderheaderid": 9821, + "userid": 12, + "tenantid": 8, + "orderid": "ORD-000843", + "deliverydate": "2026-05-20", + "orderstatus": "pending", + "pickupaddress": "123 Warehouse Rd", + "pickuplat": "-33.8600", + "pickuplon": "151.2000", + "deliveryaddress": "45 Residential St", + "deliverylat": "-33.8700", + "deliverylong": "151.2100", + "deliveryamt": 12.50, + "paymenttype": 43 + } + }, + { + "name": "Create Bulk Deliveries (V1)", + "method": "POST", + "url": "/live/api/v1/deliveries/createdeliveries", + "description": "Register bulk dispatch tasks.", + "body": [ + { + "deliveryid": 0, + "orderheaderid": 9821, + "userid": 12, + "tenantid": 8, + "orderid": "ORD-000843", + "deliverydate": "2026-05-20", + "orderstatus": "pending", + "pickupaddress": "123 Warehouse Rd", + "pickuplat": "-33.8600", + "pickuplon": "151.2000", + "deliveryaddress": "45 Residential St", + "deliverylat": "-33.8700", + "deliverylong": "151.2100", + "deliveryamt": 12.50, + "paymenttype": 43 + } + ] + }, + { + "name": "Update Delivery Status (V1)", + "method": "PUT", + "url": "/live/api/v1/deliveries/Updatedelivery", + "description": "Update transit status / rider state transitions.", + "body": { + "deliveryid": 405, + "orderheaderid": 9821, + "userid": 12, + "orderstatus": "delivered", + "starttime": "2026-05-20 10:30:00", + "arrivaltime": "2026-05-20 10:45:00", + "deliverytime": "2026-05-20 10:50:00", + "riderslat": "-33.8702", + "riderslon": "151.2103", + "dropimage": "base64_or_s3_url_string", + "collectedamt": 12.50, + "collectionstatus": 1 + } + }, + { + "name": "Publish Delivery Tracking Log (V1)", + "method": "POST", + "url": "/live/api/v1/deliveries/createdeliverylog", + "description": "Publish GPS tracking log for a delivery.", + "body": { + "deliveryid": 405, + "latitude": "-33.8688", + "longitude": "151.2093", + "raw_latitude": "-33.86885", + "raw_longitude": "151.20935", + "speed": "24.5", + "heading": "180.0", + "status": "in_transit" + } + }, + { + "name": "Create Bulk Deliveries (V2)", + "method": "POST", + "url": "/live/api/v2/deliveries/createdeliveries", + "description": "Register bulk dispatch tasks (V2).", + "body": [ + { + "deliveryid": 0, + "orderheaderid": 9821, + "userid": 12, + "tenantid": 8, + "orderid": "ORD-000843", + "deliverydate": "2026-05-20", + "orderstatus": "pending", + "pickupaddress": "123 Warehouse Rd", + "pickuplat": "-33.8600", + "pickuplon": "151.2000", + "deliveryaddress": "45 Residential St", + "deliverylat": "-33.8700", + "deliverylong": "151.2100", + "deliveryamt": 12.50, + "paymenttype": 43 + } + ] + }, + { + "name": "Publish Delivery Tracking Log (V2)", + "method": "POST", + "url": "/live/api/v2/deliveries/createdeliverylog", + "description": "Publish GPS tracking log for a delivery (V2).", + "body": { + "deliveryid": 405, + "latitude": "-33.8688", + "longitude": "151.2093", + "raw_latitude": "-33.86885", + "raw_longitude": "151.20935", + "speed": "24.5", + "heading": "180.0", + "status": "in_transit" + } + } + ] + }, + { + "id": "partners", + "name": "Partners", + "description": "Logistics partner management, rider profiles, shifts, logs, and break tracking.", + "endpoints": [ + { + "name": "Get active riders summary", + "method": "GET", + "url": "/live/api/v1/partners/getactiveriderssummary?partnerid=102", + "description": "Get active dispatch riders summary metrics." + }, + { + "name": "Get rider shifts", + "method": "GET", + "url": "/live/api/v1/partners/getridershifts?partnerid=102&shiftdate=2026-05-20", + "description": "Get available rider operational shifts." + }, + { + "name": "Get rider pricing", + "method": "GET", + "url": "/live/api/v1/partners/getriderpricing?partnerid=102&applocationid=5", + "description": "Query delivery billing price configurations for riders." + }, + { + "name": "Get rider pool", + "method": "GET", + "url": "/live/api/v1/partners/getriderpool?partnerid=102&applocationid=5", + "description": "Retrieve rider pool availability status." + }, + { + "name": "Get rider info (V1)", + "method": "GET", + "url": "/live/api/v1/partners/getriderinfo?partnerid=102&userid=12", + "description": "Retrieve general rider user info metadata." + }, + { + "name": "Get rider info (V2)", + "method": "GET", + "url": "/live/api/v2/partners/getriderinfo?partnerid=102&userid=12", + "description": "Retrieve general rider user info metadata (V2)." + }, + { + "name": "Get active riders (V1)", + "method": "GET", + "url": "/live/api/v1/partners/getriders?partnerid=102&applocationid=5", + "description": "Fetch active logistics riders status metrics." + }, + { + "name": "Get active riders (V2)", + "method": "GET", + "url": "/live/api/v2/partners/getriders?partnerid=102&applocationid=5", + "description": "Fetch active logistics riders status metrics (V2)." + }, + { + "name": "Get rider detail (V1)", + "method": "GET", + "url": "/live/api/v1/partners/getriderdetail?userid=12", + "description": "Query full details of a single rider." + }, + { + "name": "Get all riders", + "method": "GET", + "url": "/live/api/v1/partners/getallriders?partnerid=102&pageno=1&pagesize=10", + "description": "List all registered riders in the partner pool." + }, + { + "name": "Get partner profiles", + "method": "GET", + "url": "/live/api/v1/partners/getpartners?partnerid=102", + "description": "List partner profiles." + }, + { + "name": "Get partner locations", + "method": "GET", + "url": "/live/api/v1/partners/getlocations?partnerid=102", + "description": "Fetch physical location configuration mappings." + }, + { + "name": "Get partner users", + "method": "GET", + "url": "/live/api/v1/partners/getpartnerusers?partnerid=102", + "description": "List partner logins under user directory." + }, + { + "name": "Get rider count", + "method": "GET", + "url": "/live/api/v1/partners/getridercount?partnerid=102&fromdate=2026-05-01&todate=2026-05-20", + "description": "Get order counts completed per rider." + }, + { + "name": "Get rider log", + "method": "GET", + "url": "/live/api/v1/partners/getriderlog?userid=12&logdate=2026-05-20", + "description": "Fetch rider logs for a specific date." + }, + { + "name": "Get rider logs (V1)", + "method": "GET", + "url": "/live/api/v1/partners/getriderlogs?partnerid=102&fromdate=2026-05-01&todate=2026-05-20", + "description": "Query rider cumulative login logs." + }, + { + "name": "Get rider logs (V2)", + "method": "GET", + "url": "/live/api/v2/partners/getriderlogs?partnerid=102&fromdate=2026-05-01&todate=2026-05-20", + "description": "Query rider cumulative login logs (V2)." + }, + { + "name": "Get rider weekly kms", + "method": "GET", + "url": "/live/api/v1/partners/getriderweeklykms?userid=12&fromdate=2026-05-01&todate=2026-05-20", + "description": "Get weekly cumulative kilometers traveled by rider." + }, + { + "name": "Get rider support requests", + "method": "GET", + "url": "/live/api/v1/partners/getridersupport?userid=12", + "description": "Get rider support requests." + }, + { + "name": "Get all rider summary", + "method": "GET", + "url": "/live/api/v1/partners/getallridersummary?partnerid=102", + "description": "Get consolidated summary profiles of all riders." + }, + { + "name": "Get user location summary", + "method": "GET", + "url": "/live/api/v1/partners/getuserlocationsummary?partnerid=102", + "description": "Get summary of rider location mappings." + }, + { + "name": "Get admin token", + "method": "GET", + "url": "/live/api/v1/partners/getadmintoken?partnerid=102", + "description": "Retrieve admin access tokens." + }, + { + "name": "Get delivery stats (V2)", + "method": "GET", + "url": "/live/api/v2/partners/getdeliverystats?partnerid=102", + "description": "Get today's delivery status metrics." + }, + { + "name": "Create Rider Shift", + "method": "POST", + "url": "/live/api/v1/partners/createshift", + "description": "Setup a logistics shift configuration.", + "body": { + "shiftid": 0, + "shiftdate": "2026-05-20", + "starttime": "08:00:00", + "endtime": "16:00:00", + "shifthours": 8.0, + "basefare": 20.00, + "additionalkm": 1.20, + "additionalcharges": 2.50, + "orders": 15, + "fuelcharge": 5.00 + } + }, + { + "name": "Create Rider Profile", + "method": "POST", + "url": "/live/api/v1/partners/createrider", + "description": "Register a new logistics rider profile.", + "body": { + "userid": 12, + "partnerid": 102, + "identificationno": "AB981240A", + "shiftid": 2, + "basefare": 20.00, + "additionalkm": 1.20, + "additionalcharges": 2.50, + "vehicleid": 3, + "vehiclename": "Electric Bike", + "vehicleno": "NSW-RIDER-01", + "model": "Volt-X", + "color": "Red", + "licenseno": "LIC801249", + "insuranceno": "INS-7712", + "insurancedate": "2027-05-20" + } + }, + { + "name": "Update Rider Settings", + "method": "PUT", + "url": "/live/api/v1/partners/updateridersettings", + "description": "Update rider operational rates.", + "body": { + "userid": 12, + "partnerid": 102, + "basefare": 22.00, + "additionalkm": 1.30, + "additionalcharges": 3.00 + } + }, + { + "name": "Update Rider Profile", + "method": "PUT", + "url": "/live/api/v1/partners/updaterider", + "description": "Update rider profile details.", + "body": { + "userid": 12, + "partnerid": 102, + "identificationno": "AB981240A", + "shiftid": 2, + "basefare": 22.00, + "additionalkm": 1.30, + "additionalcharges": 2.50, + "vehicleid": 3, + "vehiclename": "Electric Bike", + "vehicleno": "NSW-RIDER-01", + "model": "Volt-X", + "color": "Red", + "licenseno": "LIC801249", + "insuranceno": "INS-7712", + "insurancedate": "2027-05-20" + } + }, + { + "name": "Create Rider Log (V1)", + "method": "POST", + "url": "/live/api/v1/partners/createriderlog", + "description": "Create a rider shift log entry.", + "body": { + "logid": 0, + "logdate": "2026-05-20", + "userid": 12, + "partnerid": 102, + "shiftid": 2, + "shifthours": 8.0, + "login": "2026-05-20 08:00:00", + "latitude": "-33.8688", + "longitude": "151.2093", + "status": "login" + } + }, + { + "name": "Create Rider Log (V2)", + "method": "POST", + "url": "/live/api/v2/partners/createriderlog", + "description": "Create a rider shift log entry (V2).", + "body": { + "logid": 0, + "logdate": "2026-05-20", + "userid": 12, + "partnerid": 102, + "shiftid": 2, + "shifthours": 8.0, + "login": "2026-05-20 08:00:00", + "latitude": "-33.8688", + "longitude": "151.2093", + "status": "login" + } + }, + { + "name": "Update Rider Log (V1)", + "method": "PUT", + "url": "/live/api/v1/partners/updateriderlog", + "description": "Update rider shift log (logout/fulfill).", + "body": { + "logid": 4092, + "userid": 12, + "logout": "2026-05-20 16:00:00", + "workhours": 7.8, + "shorthours": 0.2, + "logstatus": 2, + "latitude": "-33.8690", + "longitude": "151.2100", + "status": "logout" + } + }, + { + "name": "Update Rider Log (V2)", + "method": "PUT", + "url": "/live/api/v2/partners/updateriderlog", + "description": "Update rider shift log (logout/fulfill) (V2).", + "body": { + "logid": 4092, + "userid": 12, + "logout": "2026-05-20 16:00:00", + "workhours": 7.8, + "shorthours": 0.2, + "logstatus": 2, + "latitude": "-33.8690", + "longitude": "151.2100", + "status": "logout" + } + }, + { + "name": "Create Break Log (V1)", + "method": "POST", + "url": "/live/api/v1/partners/createbreaklog", + "description": "Create a rider break status log.", + "body": { + "breakid": 0, + "logid": 4092, + "breakdate": "2026-05-20", + "userid": 12, + "partnerid": 102, + "shiftid": 2, + "breakstart": "2026-05-20 12:00:00", + "latitude": "-33.8688", + "longitude": "151.2093" + } + }, + { + "name": "Create Break Log (V2)", + "method": "POST", + "url": "/live/api/v2/partners/createbreaklog", + "description": "Create a rider break status log (V2).", + "body": { + "breakid": 0, + "logid": 4092, + "breakdate": "2026-05-20", + "userid": 12, + "partnerid": 102, + "shiftid": 2, + "breakstart": "2026-05-20 12:00:00", + "latitude": "-33.8688", + "longitude": "151.2093" + } + }, + { + "name": "Complete Break Log (V1)", + "method": "PUT", + "url": "/live/api/v1/partners/updatebreaklog", + "description": "Mark a rider break as completed.", + "body": { + "breakid": 901, + "breakend": "2026-05-20 12:30:00", + "breakhours": 0.5 + } + }, + { + "name": "Complete Break Log (V2)", + "method": "PUT", + "url": "/live/api/v2/partners/updatebreaklog", + "description": "Mark a rider break as completed (V2).", + "body": { + "breakid": 901, + "breakend": "2026-05-20 12:30:00", + "breakhours": 0.5 + } + }, + { + "name": "Create Rider Support Request", + "method": "POST", + "url": "/live/api/v1/partners/createridersupport", + "description": "Submit a rider support request ticket.", + "body": { + "userid": 12, + "subject": "Missing delivery payment", + "description": "COD collection not reflected in dashboard.", + "category": "Billing" + } + }, + { + "name": "Delete Rider Log (V2)", "method": "DELETE", - "url": "/live/api/v1/web/products/delete?productid=105", - "description": "Purge Master Product Catalog Entry" - }, - { - "name": "Mobile Update Product Details", - "method": "PUT", - "url": "/live/api/v1/mob/products/update", - "description": "Mobile Update Product Details Payload: (Uses the same schema as Web Update Master Product Details)", + "url": "/live/api/v2/partners/deleteriderlog", + "description": "Remove a rider log entry.", "body": { - "productid": 105, - "productname": "Organic Farm Cow Milk 1L", - "productcost": 1.95, - "retailprice": 3.75, - "productstock": 120, - "productstatus": "available" - } - }, - { - "name": "Mobile Update Product Outlet Config", - "method": "PUT", - "url": "/live/api/v1/mob/products/updateproductlocation", - "description": "Mobile Update Product Outlet Config Payload: (Uses the same schema as Web Update Product Outlet Constraints)", - "body": { - "productlocationid": 25, - "tenantid": 8, - "locationid": 2, - "productid": 105, - "minquantity": 10, - "maxquantity": 150, - "price": 3.99, - "status": "Active" + "logid": 4092 } } ] @@ -1782,13 +2050,419 @@ export const restTopics = [ { "id": "invoice", "name": "Invoice", - "description": "Invoice insights and billing analytics.", - "endpoints": [] + "description": "Invoice generation, billing management, and payment status tracking.", + "endpoints": [ + { + "name": "Get invoice sequence number", + "method": "GET", + "url": "/live/api/v1/invoice/getseqno?tenantid=8", + "description": "Retrieve next sequence identifier for tenant invoice generation." + }, + { + "name": "Get invoice orders", + "method": "GET", + "url": "/live/api/v1/invoice/getinvoiceorders?invoiceid=402", + "description": "List orders associated under an invoice." + }, + { + "name": "Get all invoices", + "method": "GET", + "url": "/live/api/v1/invoice/getallinvoice?tenantid=8&customerid=12&status=Unpaid&pageno=1&pagesize=10", + "description": "Query invoices catalog with paging and status checks." + }, + { + "name": "Get invoice insight", + "method": "GET", + "url": "/live/api/v1/invoice/getinvoiceinsight?tenantid=8", + "description": "Retrieve consolidated revenue insights for invoice billing." + }, + { + "name": "Create Invoice", + "method": "POST", + "url": "/live/api/v1/invoice/create", + "description": "Create a new invoice.", + "body": { + "invoiceid": 0, + "invoiceno": "INV-00802", + "invoicedate": "2026-05-20", + "tenantid": 8, + "customerid": 4082, + "amount": 250.00, + "taxamount": 25.00, + "status": "Unpaid" + } + }, + { + "name": "Update Invoice", + "method": "PUT", + "url": "/live/api/v1/invoice/update", + "description": "Update an existing invoice.", + "body": { + "invoiceid": 402, + "invoiceno": "INV-00802", + "invoicedate": "2026-05-20", + "tenantid": 8, + "customerid": 4082, + "amount": 275.00, + "taxamount": 27.50, + "status": "Unpaid" + } + }, + { + "name": "Update Invoice Status", + "method": "PUT", + "url": "/live/api/v1/invoice/updatestatus", + "description": "Update invoice payment status.", + "body": { + "invoiceid": 402, + "status": "Paid", + "paymentmode": "Card", + "reference": "TXN9402801" + } + } + ] + }, + { + "id": "utils", + "name": "Utils", + "description": "App configuration, notifications, webhooks, Redis cache, and rider telemetry.", + "endpoints": [ + { + "name": "Get app locations (V1)", + "method": "GET", + "url": "/live/api/v1/utils/getapplocations?applocationid=5", + "description": "Get active app physical hub locations." + }, + { + "name": "Get app locations (V2)", + "method": "GET", + "url": "/live/api/v2/utils/getapplocations?userid=12", + "description": "Get active app physical hub locations (V2)." + }, + { + "name": "Get app config", + "method": "GET", + "url": "/live/api/v1/utils/getappconfig?configid=6", + "description": "Get core app specifications and provider credentials." + }, + { + "name": "Get all app configs", + "method": "GET", + "url": "/live/api/v1/utils/getallappconfig", + "description": "Get all system app configurations." + }, + { + "name": "Get app types", + "method": "GET", + "url": "/live/api/v1/utils/getapptypes?tag=Rider", + "description": "Get application type classifications matching tag string." + }, + { + "name": "Get categories", + "method": "GET", + "url": "/live/api/v1/utils/getcategories?moduleid=6", + "description": "List app categories mapped under module configuration." + }, + { + "name": "Get subcategories", + "method": "GET", + "url": "/live/api/v1/utils/getsubcategories?moduleid=6&categoryid=4", + "description": "List app subcategories under category and module configurations." + }, + { + "name": "Get app pricing", + "method": "GET", + "url": "/live/api/v1/utils/getapppricing?applocationid=5&configid=6&pricingtypeid=1", + "description": "Query exact pricing configurations mapped to zone and config." + }, + { + "name": "Get all pricing", + "method": "GET", + "url": "/live/api/v1/utils/getallpricing?applocationid=5", + "description": "Get all app delivery pricing ranges." + }, + { + "name": "Get app location config", + "method": "GET", + "url": "/live/api/v1/utils/getapplocationconfig?applocationid=5", + "description": "Retrieve app zone configs." + }, + { + "name": "Get tenant notifications", + "method": "GET", + "url": "/live/api/v1/utils/gettenantnotifications?tenantid=8&pageno=1&pagesize=10", + "description": "Query push notifications history processed for tenant." + }, + { + "name": "Get shopfront orders", + "method": "GET", + "url": "/live/api/v1/utils/getshopfrontorders", + "description": "Fetch third-party shopfront sync order payloads." + }, + { + "name": "Get user bonus summary", + "method": "GET", + "url": "/live/api/v1/utils/getuserbonussummary?userid=12", + "description": "Get rider cumulative bonus points summary." + }, + { + "name": "Get user roles", + "method": "GET", + "url": "/live/api/v1/utils/getuserroles", + "description": "List all system platform roles." + }, + { + "name": "Get user Redis cache", + "method": "GET", + "url": "/live/api/v1/utils/getuserredis?userid=12", + "description": "Retrieve app user credentials stored in Redis cache." + }, + { + "name": "Get rider periodic logs", + "method": "GET", + "url": "/live/api/v1/utils/getriderperiodiclogs?userid=12", + "description": "Query raw rider logs cached in memory." + }, + { + "name": "Get rider status", + "method": "GET", + "url": "/live/api/v1/utils/getriderstatus?userid=12", + "description": "Query current cached online/duty status of a rider." + }, + { + "name": "Send Push Notification (Single)", + "method": "POST", + "url": "/live/api/v1/utils/notifyuser", + "description": "Send a single push notification to a device.", + "body": { + "token": "FCM_DEVICE_TOKEN_ABC", + "notification": { + "title": "Welcome to Nearle!", + "body": "Your registration was successful.", + "sound": "default", + "type": "welcome" + } + } + }, + { + "name": "Send Push Notification (Broadcast)", + "method": "POST", + "url": "/live/api/v1/utils/sendnotifications", + "description": "Send multi-token broadcast push notification.", + "body": { + "token": ["FCM_TOKEN_1", "FCM_TOKEN_2"], + "notification": { + "title": "System Update", + "body": "System will be down for 5 mins.", + "sound": "default", + "type": "standard" + } + } + }, + { + "name": "Create App Pricing Config", + "method": "POST", + "url": "/live/api/v1/utils/createapppricing", + "description": "Create global logistics rates configuration.", + "body": { + "applocationid": 5, + "basefare": 8.50, + "additionalkm": 1.50, + "additionalcharges": 2.00, + "fuelcharge": 0.50 + } + }, + { + "name": "Notify Admin", + "method": "POST", + "url": "/live/api/v1/utils/notifyadmin", + "description": "Send push notification to admin console.", + "body": { + "token": "ADMIN_FCM_TOKEN", + "notification": { + "title": "Database Threshold", + "body": "Active connection reaches 85%.", + "sound": "default", + "type": "warning" + } + } + }, + { + "name": "Notify Tenant", + "method": "POST", + "url": "/live/api/v1/utils/notifytenant", + "description": "Send push notification to tenant manager and log history.", + "body": { + "token": "TENANT_FCM_TOKEN", + "tenantid": 8, + "moduleid": 6, + "locationid": 45, + "customerid": 4082, + "notification": { + "title": "Low Stock", + "body": "Fresh apples quantity falls below threshold.", + "sound": "default", + "type": "alert" + } + } + }, + { + "name": "Webhook Listener", + "method": "POST", + "url": "/live/api/v1/utils/webhooks", + "description": "General webhook listener / receiver.", + "body": { + "id": "event-uuid-1", + "event": "sale.created", + "timestamp": "2026-05-20T10:20:00Z", + "payload": {} + } + }, + { + "name": "Register GraphQL Webhook", + "method": "POST", + "url": "/live/api/v1/utils/register-webhook", + "description": "Register a third-party GraphQL webhook callback.", + "body": { + "callbackurl": "https://jupiter.nearle.app/live/api/v1/utils/webhooksreceiver", + "secret": "webhook_secret_key" + } + }, + { + "name": "Create Internal Webhook", + "method": "POST", + "url": "/live/api/v1/utils/createwebhook", + "description": "Create an internal webhook event configuration.", + "body": { + "webhookid": 0, + "eventname": "sale.created", + "callbackurl": "https://clientapp.com/webhooks", + "status": "Active" + } + }, + { + "name": "Shopfront Webhook Receiver", + "method": "POST", + "url": "/live/api/v1/utils/webhooksreceiver", + "description": "Shopfront callback webhook receiver endpoint.", + "body": { + "id": "event-uuid-2", + "event": "inventory.updated", + "timestamp": "2026-05-20T10:20:00Z", + "payload": {} + } + }, + { + "name": "Setup Inventory Webhook", + "method": "POST", + "url": "/live/api/v1/utils/webhooks/inventory", + "description": "Setup shopfront inventory GraphQL webhook.", + "body": { + "callbackurl": "https://jupiter.nearle.app/live/api/v1/utils/webhooksreceiver", + "secret": "webhook_secret_key" + } + }, + { + "name": "Create App Location Config", + "method": "POST", + "url": "/live/api/v1/utils/createapplocationconfig", + "description": "Setup physical app zone configuration.", + "body": { + "applocationid": 5, + "configid": 6, + "locationname": "Sydney Metro Hub", + "latitude": "-33.8688", + "longitude": "151.2093", + "status": "Active" + } + }, + { + "name": "Update App Location Config", + "method": "PUT", + "url": "/live/api/v1/utils/updateapplocationconfig", + "description": "Update physical app zone configuration.", + "body": { + "applocationid": 5, + "configid": 6, + "locationname": "Sydney Metro Hub Updated", + "latitude": "-33.8688", + "longitude": "151.2093", + "status": "Active" + } + }, + { + "name": "Ingest User Redis Cache", + "method": "POST", + "url": "/live/api/v1/utils/createuserredis", + "description": "Store app user credentials in Redis cache.", + "body": { + "userid": 12, + "authtoken": "session_bearer_token_string", + "expiry": 86400 + } + }, + { + "name": "Publish Rider Periodic Log", + "method": "POST", + "url": "/live/api/v1/utils/createriderperiodiclog", + "description": "Publish rider periodic GPS coordinates log.", + "body": { + "userid": 12, + "latitude": "-33.8688", + "longitude": "151.2093", + "speed": "15.4", + "heading": "90.0", + "timestamp": "2026-05-20T10:20:00Z" + } + }, + { + "name": "Publish Rider Duty Status", + "method": "POST", + "url": "/live/api/v1/utils/createriderstatus", + "description": "Publish rider current duty status.", + "body": { + "userid": 12, + "onduty": 1, + "status": "idle" + } + } + ] }, { "id": "payments", "name": "Payments", - "description": "Payment requests and settlements.", - "endpoints": [] + "description": "Payment requests, admin order queries, and platform configuration.", + "endpoints": [ + { + "name": "Get payment request", + "method": "GET", + "url": "/live/api/v1/payments/requests/getpaymentrequest?customerid=12", + "description": "Query payment requests log." + }, + { + "name": "Admin get orders", + "method": "GET", + "url": "/live/api/v1/admin/orders/getorders?tenantid=8&pageno=1&pagesize=10", + "description": "Retrieve specific order summaries under administrator access." + }, + { + "name": "Get SMS provider", + "method": "GET", + "url": "/live/api/v1/platform/getsmsprovider", + "description": "Fetch SMS provider specifications." + }, + { + "name": "Create Payment Request", + "method": "POST", + "url": "/live/api/v1/payments/requests/create", + "description": "Issue a customer payment charge request.", + "body": { + "amount": 250.00, + "currency": "AUD", + "customerid": 4082, + "description": "Invoice Payment INV-00802" + } + } + ] } ];