🇮🇳 India's Own Cloud ERP · No Third-Party Servers · Since 1993 📞 +91 8108050503  ·  ✉ jvgears@gmail.com
GSTPLUS CloudERP
Home Platform Modules Pricing API Docs About Contact 🔐 Login Portal
JSON Upload Guide
Company-wise & Common JSON Upload
Complete documentation for uploading JSON data to GSTPLUS CloudERP — both company-specific files (ledgers, HR, CRM, GST, eWayBill) and system-wide common files (companies, pricelist, partners).
Upload Types
3 Types of JSON Upload
🏢
Company-wise Ledger JSON
data/{companyid}/ledgers/{ledgerid}.json
Ledger data — Dr/Cr entries, outstanding invoices, GSTR-1/2B, TDS, stock per ledger/party
📋
Company-wise Module JSON
data/{companyid}/{module}_data.json
HR employees, CRM customers/activities, GST filing status, eWay Bill records per company
📦
Common System JSON
data/{filename}.json
Companies list, pricelist, partners, orders, payments — system-wide shared files
Type 1
Company-wise Ledger JSON Upload
Upload individual ledger (party/account) JSON files to a specific company folder. Each ledger file represents one account — customer, supplier, bank, loan, etc.
File Path
Upload Path Pattern
// Pattern data/{companyid}/ledgers/{ledgerid}.json // Examples data/MER-2025-26/ledgers/ACC-HDL-00312.json data/MER-2025-26/ledgers/ACC-STR-00145.json data/SUN-2025-26/ledgers/ACC-BEL-00278.json // Rules // - companyid must exist in companies.json // - folder data/{companyid}/ledgers/ must exist // - filename = ledgerid + .json // - ledgerid must match value inside file
REST API Upload (POST)
cURL — Upload Ledger via API
curl -X POST \ "https://gstplusindia.com/apimgmt.php" \ -H "Authorization: Bearer GSTP_652745..." \ -H "Content-Type: application/json" \ -d '{ "action": "upload_ledger", "companyid": "MER-2025-26", "ledgerid": "ACC-NEW-00500", "data": { ... full ledger JSON here ... } }' // Or place file directly on server: // data/MER-2025-26/ledgers/ACC-NEW-00500.json
Full Ledger JSON Schema
Ledger JSON Structure (Complete)
{ "ledgerid": "ACC-HDL-00312", // Unique ID "name": "Horizon Distributors", // Party name "type": "Trade Debtor", "gstin": "27AADCH3210P1ZQ", "pan": "AADCH3210P", "addr": "FC Road, Pune – 411004", "contact": "Mr. Suresh Patil", "phone": "+91 20 4123 7800", "email": "finance@horizondist.in", "limit": 500000, // Credit limit "terms": "Net 45 Days", "group": "Sundry Debtors", "ob": 85000, // Opening balance "aging": [ { "lbl":"0–30 Days", "clr":"#22c55e", "amt":47500, "cnt":2 }, { "lbl":"31–60 Days","clr":"#84cc16", "amt":75000, "cnt":2 }, { "lbl":"61–90 Days","clr":"#f59e0b", "amt":50000, "cnt":1 } ], "ledger": [ { "date":"05 Apr 2025", "doc":"INV/001", "desc":"Sales", "narr":"Narration", "chq":"", "dr":82600, "cr":0, "t":"Invoice" } ], "outstanding": [ { "inv":"INV/001", "idate":"05 Apr 2025", "due":"20 May 2025", "orig":82600, "paid":0, "bal":82600, "days":45, "status":"Overdue" } ], "gstr1": [...], "gstr2b": [...], "tds": [...], "stock": [...], "invReg": [...], "purReg": [...], "bankRecon": [...], "loanLedger": [...], "pettyCash": [...], "bsData": {} }
Type 2
Company-wise Module JSON Upload
Each company has dedicated JSON files for HR, CRM, GST portal data, and eWay Bills. Upload to the correct path for that company.
HR Data JSON
data/{companyid}/hr_data.json
HR & Employee Module
Minimal hr_data.json
{"employees":[{"empid":"EMP001","name":"Ramesh Kulkarni","designation":"CFO","dept":"Finance","doj":"01 Apr 2022","gross":95000,"pf_rate":12,"esi_rate":0.75,"pt":200}],"attendance":{"2026-03":[{"empid":"EMP001","present":26,"absent":0,"halfday":0,"leaves":1}]},"payroll":{},"leaves":{}}
CRM Data JSON
data/{companyid}/crm_data.json
AI / CRM Module
Minimal crm_data.json
{"customers":[{"custid":"CUST001","name":"Horizon Distributors","group":"A","gstin":"27AADCH3210P1ZQ","credit_limit":500000}],"activities":[{"id":"ACT001","custid":"CUST001","type":"Call","date":"10 Apr 2026","notes":"Follow-up on payment","outcome":"Positive"}],"targets":[],"forecasts":[]}
GST Portal JSON
data/{companyid}/gst_portal.json
GST Management Module
Minimal gst_portal.json
{"gstr1_status":[{"period":"Apr 2025","filed":"11 May 2025","total_invoices":5,"taxable":820000,"igst":0,"cgst":73800,"sgst":73800}],"gstr3b":[],"tds_register":[]}
eWay Bill JSON
data/{companyid}/eway_data.json
eWay Bill Module
Minimal eway_data.json
{"sales_ewb":[{"ewb_no":"EWB-2025-001","invoice":"INV/001","party":"Horizon Distributors","gstin":"27AADCH3210P1ZQ","from_state":"27","to_state":"24","vehicle":"MH12AB1234","status":"Delivered"}],"purchase_ewb":[],"irn_register":[]}
Type 3
Common System JSON Upload
System-wide JSON files shared across all companies. Use API or direct file placement. These affect all companies and modules.
Companies JSON
data/companies.json
All Modules
Master list of all companies. Contains companyid, GSTIN, subscriptions, expiry dates, partner, plan. Modified by supervisor panel and API.
Pricelist JSON
data/pricelist.json
Dashboard (Price List tab)
Product/service price list with brand, item code, description, HSN, GST%, price excl., price incl. Searchable by brand, item name.
Partners JSON
data/partners.json
Supervisor Panel
Partner accounts with partnerid, name, contact, email, phone, GSTIN, city, status. Used for partner pricing.
Orders JSON
data/orders.json
Supervisor Panel
Subscription orders — order_no, companyid, modules, plan, discount, subtotal, GST, total, payment_status.
Common JSON Schemas
Pricelist JSON Schema
data/pricelist.json
{ "pricelist": [ { "brand": "NORISYS", "item_code": "NOR-SW-001", "description": "2-Module Switch Board", "hsn": "85365090", "gst_pct": 18, "price_excl": 185.00, "price_incl": 218.30, "mrp": 250.00, "discount_pct": 12, "unit": "NOS" } ], "brands": ["NORISYS", "BOROSIL", ...] }
data/companies.json — Entry
{ "companies": [ { "companyid": "MER-2025-26", "periodid": "2025-26", "name": "Meridian Enterprises Pvt. Ltd.", "gstin": "27AABCM4567R1ZX", "fy_from": "01 Apr 2025", "fy_to": "31 Mar 2026", "subscriptions": ["Dashboard", ...], "subscription_expiry": { "Dashboard": "31 Mar 2026" }, "plan": "enduser", "status": "Active" } ] }
Best Practices
Upload Rules & Validation
Validate JSON before upload
Always validate JSON with json_decode() or JSONLint before placing. Malformed JSON will silently fail to load in modules.
🔐
File permissions
Set JSON file permissions to 644 (readable by web server). Folders should be 755. Run as www-data user.
🔑
Use API for automation
For automated 3rd party sync, use the REST API with Bearer token. Avoids direct filesystem access from external systems.
🆔
Match ledgerid to filename
The ledgerid field inside the JSON must exactly match the filename (without .json). Used for file loading and API access.
📁
Create folders first
Use Supervisor Tab 8 or POST add_company to create folder structure before uploading ledger JSON files.
🔄
Atomic writes
Write JSON to a temp file (.tmp) then rename to final path for atomic update. Avoids partial reads during write.
Need Help with JSON Integration?
Mr. Jitendra Velani provides full onboarding, data migration, and 3rd party ERP integration support. 31+ years of JSON/API expertise.