# Api for the team list : https://api.thecaoffice.com/ca/login # Login Input response { 'username': '', 'password': '', 'mode': 'app' # ... Required ("cosec") } #Login Output response { "code": 1, "data": {}, "message": "Sucessfull", "sessionToken": "44e490e2-94c2-47c4-8a02-4ddeb4fea56a", "status": 1 } # Call inout register for prev day - credentials in json file # call team list using ca office api - credentials in json file # Api for the team list : https://api.thecaoffice.com/team/list # Team List Input response { "idUser":1643 } # Team List output response: { "code": 1, "data": { "http_code": 200, "numeric_code": 4312, "rs0": [ { "authorisations_json": null, "department_id": 699, "department_name": "Client Management", "email": "aramduke@gmail.com", "full_name": "Aarm Duke", "hierarchy_level": 1, "json_notes": "{\n \"pdf\": \"https://nexcom.ditscentre.in/utils/files/small/download/69315bd0a468dde807890681\",\n \"salary\": 30000,\n \"maritalStatus\": \"\",\n \"dateOfBirth\": \"\",\n \"dateOfJoin\": \"\",\n \"accountNumber\": \"\",\n \"ifsc\": \"\",\n \"bankName\": \"\",\n \"esicNumber\": \"\",\n \"ppfnumber\": \"\",\n \"emergencyContactNumber\": \"\",\n \"emergencyContactName\": \"\",\n \"photoUrl\": \"https://nexcom.ditscentre.in/utils/files/small/download/6900430c77c9b049da378dab\",\n \"aadhaarUrl\": \"\",\n \"panCardUrl\": \"\",\n \"address\": \"\",\n \"billingRate\": \"\",\n \"relationship\": \"\",\n \"city\": \"\",\n \"pincode\": \"\",\n \"branchId\": 84,\n \"weeklyOff\": [],\n \"weeklyWorkingHours\": 0,\n \"noOfPaidLeaves\": 0,\n \"country\": \"India\",\n \"lastDayOfWorking\": null,\n \"applicantNotes\": {\n \"age\": null,\n \"gender\": \"\",\n \"educationLevel\": null,\n \"noChildren\": null,\n \"spouseWorkingStatus\": null,\n \"noOfChildrenAbove18\": null,\n \"noOfChildrenBelow18\": null,\n \"employmentStatus\": \"\",\n \"attendanceAllowance\": 0,\n \"performanceAllowance\": 0,\n \"adaitechEmail\": null,\n \"adaitechPassword\": null,\n \"gearincEmail\": null,\n \"payrollFor\": null,\n \"contractStartDate\": null,\n \"contractEndDate\": null,\n \"nricNo\": null,\n \"taxNo\": null,\n \"epfNo\": null,\n \"perksoNo\": null,\n \"Salutation\": null,\n \"reportingToName\": \"Aditya Shah\",\n \"outlierId\": null,\n \"addressProofUrl\": null,\n \"appointmentLetterUrl\": null,\n \"offerLetterUrl\": null,\n \"pfUanNumber\": null,\n \"panCardNumber\": null,\n \"aadhaarCardNumber\": null,\n \"payRollType\": \"onRoll\",\n \"labourContractorName\": null,\n \"labourContractorId\": null,\n \"leaveAfter\": 10\n },\n \"userBasicSalary\": 25000,\n \"houseResidencesAllowance\": 3000,\n \"dearnessAllowance\": 0,\n \"conveyance\": 1000,\n \"allowance\": 1000,\n \"providentFund\": true,\n \"employeesInsurance\": true,\n \"professionalTax\": true,\n \"salaryType\": \"Monthly\",\n \"team_master\": true,\n \"account_master_id\": 43682\n}", "phone_number": "+916655665577", "pseudonym": "aramduke", "reporting_to": 2057.0, "role": "Crm Lead", "user_id": 2876, "user_status": "active" } ] }, "message": "Team Member List", "status": 1 } # check if any new names in the in out register vs team list # if yes then add team member / branch / department as needed # Api for the team add : https://api.thecaoffice.com/team/add Payload = { 'email': 'employee@company.com', # ... Required (?? or User Name -> to lower and space becomes dot "@velankanigroup.com") 'name': 'John Smith', # ... Required (User Name) "idDepartment": 1, # ... Required (??) 'role': 'Software Engineer', # ... Required (Category Name) 'phoneNo': '9876543210', # ... Required (?? or "9876543210") 'username': 'john.smith', # ... Required (User Name -> to lower and space becomes dot) 'password': 'password123', # ... Required ("9876543210") 'address': '123 Main St, Mumbai, Maharashtra', "website": 'http://company.com', "logoUrl": null, "companyName": 'Lok Chemicals Pvt. Ltd.', "salary": 50000.0, "maritalStatus": 'Single', "dateOfBirth": '1999-01-01', "dateOfJoin": '2025-01-01', "accountNumber": '1234567890', "ifsc": 'BKID0001234', "bankName": 'Bank of India', "esicNumber": 'ESIC123456', "ppfnumber": 'PPF123456789', "emergencyContactNumber": '9998887777', "emergencyContactName": 'Jane Doe', "photoUrl": 'http://example.com/photo.jpg', "aadhaarUrl": 'http://example.com/aadhaar.jpg', "panCardUrl": 'http://example.com/pancard.jpg', "billingRate": '100.0', "hierarchy": 1, "branchId": 101, "city": 'Mumbai', "pinCode": '400001', "relationship": 'Single', "weeklyOff": 'Saturday', "weeklyWorkingHours": 40, "noOfPaidLeaves": 12, "country": 'India', "lastDayOfWorking": '2025-12-31', "applicantNotes": applicantNotesParam, "reportingTo": 101, "userBasicSalary": 30000.0, "houseResidencesAllowance": 2000.0, "dearnessAllowance": 3000.0, "conveyance": 1000.0, "allowance": 1500.0, "providentFund": true, "employeesInsurance": true, "professionalTax": true, "salaryType": 'Monthly', }; final applicantNotesParam = { "age": 30, "gender": 'Male', "educationLevel": 'Bachelor\'s Degree', "noChildren": 2, "spouseWorkingStatus": 'Employed', "noOfChildrenAbove18": '1', "noOfChildrenBelow18": '2', "employmentStatus": 'Full-time', "attendanceAllowance": 100.0, "performanceAllowance": 200.0, "adaitechEmail": 'example@adaitech.com', "adaitechPassword": 'password123', "gearincEmail": 'example@gearinc.com', "payrollFor": 'Employee', "contractStartDate": '2025-01-01', "contractEndDate": '2025-12-31', "nricNo": 'S1234567D', "taxNo": 'T123456789', "epfNo": 'EPF123456789', "perksoNo": 'P123456789', "Salutation": 'Mr.', "reportingToName": 'Jane Doe', "outlierId": 'OUT12345', "addressProofUrl": 'http://example.com/addressproof.jpg', "appointmentLetterUrl": 'http://example.com/appointmentletter.pdf', "offerLetterUrl": 'http://example.com/offerletter.pdf', "pfUanNumber": 'PF123456789', "panCardNumber": 'ABCDE1234F', "aadhaarCardNumber": '1234 5678 9012', "payRollType": 'monthly', "labourContractorName": 'Contractor XYZ', "labourContractorId": 101, "leaveAfter": 30, }; # Api for the branch add : https://api.thecaoffice.com/commons/branch/add Paylod = { 'idUser':1643 # ... Required (from session token) 'branchName': 'Main Branch', # ... Required (Branch Name) 'address': '123 Street, Mumbai, Maharashtra', 'branchHead': 'John Doe', 'branchHeadId': 18, 'gstNumber': '27ABCDE1234F1Z5', 'city': 'Mumbai', 'pincode': '400001', 'bankName': 'Bank of India', 'bankAccountNo': '1234567890123456', 'bankIfscCode': 'BKID0001234', 'panCard': 'ABCDE1234F', 'msmeNo': 'MSME1234567890', } # Api for the branch list : https://api.thecaoffice.com/commons/branch/list # branch List Input JSON { "idUser":1643 } # Branch List output JSON: { "code": 1, "data": { "http_code": 200, "numeric_code": 4201, "rs0": [ { "branch_head": null, "branch_id": 45, "branch_name": "Testing", "contact_email": null, "contact_phone": null, "created_at": 1733405356000, "entity_id": 118, "notes": "{\n \"address\": null,\n \"city\": null,\n \"pincode\": null,\n \"branchHead\": \"Sahil Khan\",\n \"gstNumber\": null,\n \"bankName\": null,\n \"bankAccountNo\": null,\n \"bankIfscCode\": null,\n \"panCard\": null,\n \"serviceTaxNo\": null\n}", "updated_at": 1733405356000 } ] }, "message": "Department list", "status": 1 } #------------------------------------------------------------ # Api for the department add : https://api.thecaoffice.com/commons/departments/add params = { 'idUser':1643 # ... Required (from session token) 'departmentName': departmentController.text, # ... Required (Department Name) }; # Api for the department add : https://api.thecaoffice.com/commons/departments/list # Department List Input JSON { "idUser":1643 } # Department List output JSON: { "code": 1, "data": { "http_code": 200, "numeric_code": 4201, "rs0": [ { "contact_email": null, "contact_phone": null, "created_at": 1733123791000, "department_head": null, "department_id": 395, "department_location": null, "department_name": "Api", "entity_id": 118, "updated_at": 1749696986000 } ] }, "message": "Department list", "status": 1 } #------------------------------------------------------------ # Mark attendance based on in out register time spent and hr rules # Api for the attendance mark : https://api.thecaoffice.com/user/attendance/mark params = { "date": '2025-12-31', "idUser": 101, # ... this Id of the team member whose we are marking attendance "status": 'P', "ot": 0 }; # Api for the attendance register : https://api.thecaoffice.com/user/attendance/register # input json Paylod = { "month": '2025-12-31' } # Output json { "code": 1, "data": { "rs0": [ { "allowances": 32.2581, "amount": 967.7419, "ar_date": "2025-12-18", "basic_salary": 806.4516, "conveyance": 32.2581, "da": 0.0, "department_name": "Site Admin", "full_name": "Aarm Duke", "hra": 96.7742, "idattendance_register": 21020, "ot": 0, "ot_amount": 806.4516, "pseudonym": "aramduke", "remarks": null, "status": "P", "user_id": 2876 }, { "allowances": 32.2581, "amount": 967.7419, "ar_date": "2025-12-31", "basic_salary": 806.4516, "conveyance": 32.2581, "da": 0.0, "department_name": "Site Admin", "full_name": "Aarm Duke", "hra": 96.7742, "idattendance_register": 21737, "ot": 0, "ot_amount": 806.4516, "pseudonym": "aramduke", "remarks": null, "status": "P", "user_id": 2876 } ] }, "message": "Attendance register for the entity", "status": 1 } # salary register download option.