MENU navbar-image

Introduction

Timetaag API provides secure and flexible endpoints for integrating time and attendance management into your applications. It supports real-time data syncing, employee authentication, shift scheduling, leave management, biometric device integration, and detailed reporting.

This documentation aims to provide all the information you need to work with our API.

We're Returning Our Response With Below Codes. Please Refer Once :-

  1. "400" => You've Made an Bad Request.
  2. "200" => Data Retrieved/Submitted Successfully.
  3. "304" => You've Got Cached Response Because of Duplicate Idempotency Key.
  4. "404" => Page Not Found.
  5. "500" => Server Error.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Auth

API for managing Login

Login

This endpoint is used to login a user to the system.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AdminLogin" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"user@example.com\",
    \"password\": \"YourPassword\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AdminLogin"
);

const headers = {
    "Idempotency-Key": "base64_encode('body')",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "user@example.com",
    "password": "YourPassword"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Successful Login):


{
     "status": true,
     "code": 200,
     "data": {
         "company_global_id": "10000",
         "company_name": "Demo Company",
         "super_admin_email": "user@example.com"
         "subscription_device": 2,
         "subscription_users": 100,
         "subscription_date_end": "2024-09-12 00:00:00"
         },
         "current_license_status": {
         "text": "Active",
         "class": "text-success"
         }
     },
    "message": "Logged In Successfully.",
}
 

Example response (400, Failed Login):


{
    "status": false,
    "code": 400,
    "message": "Invalid email or password!"
}
 

Request   

POST api/v1/AdminLogin

Headers

Idempotency-Key      

Example: base64_encode('body')

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Example: user@example.com

password   string   

Example: YourPassword

Attendance Rule

APIs for managing Attendance Rule

Get Attendance Rule

requires authentication

This endpoint is used to fetch all Attendance available in the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetAttendance" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetAttendance"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Attendance Rule):


{
     "status": true,
     "code": 200,
     "message": "Attendance Rule Retrieved Successfully.",
     "data": [
         {
             "id": 1,
             "AttSettingName": "Default",
             "AttSettingCode": "Default",
             "WeeklyOff1Day": "Friday",
             "WeeklyOff1Occurence": "1,2,3,4,5",
             "WeeklyOff2Day": "none",
             "WeeklyOff2Occurence": "",
             "HalfDayForLessDurationMin": 7,
             "AbsentForLessDurationMin": 6,
             "OTFormula": "shift_hour",
             "MinimumOT": 10,
             "MaximumOT": 600,
             "GraceForLateComing": 0,
             "GraceForEarlying": 0,
             "MarkHalfDayWhenLateByMins": 0,
             "MarkHalfDayWhenEarlyByMins": 0,
             "IsConsiderFirstandLastPunch": null,
             "IsValidateEarlyPunch": null,
             "IsValidateLatePunch": null,
             "IsDeductBreakDuration": null,
             "SetSinglePunchStatusAs": "In Punch + 1 min",
             "IsWOPHOPInOT": 1,
             "IsAutoCompOff": null,
             "HalfDayParForLessDurationMin": 7,
             "AbsentParForLessDurationMin": 6,
             "IsValPreSufAbsentOnWOHO": null,
             "IsValSuffixAbsentOnWOHO": null,
             "IsValPrefixAbsentOnWOHO": null,
             "IsValLeaveForPrefixSuffix": null,
             "HalfDayCoffForLessDurationMin": 0,
             "NoCoffForLessDurationMin": 0,
             "HalfDayCoffForLessOT": 0,
             "NoCoffForLessOT": 0,
             "ApplicableLeaves": "1",
             "IsConsiderHAbsForContLate": null,
             "MarkOrDeductDayLate": 0.5,
             "WhenLateBy": 2,
             "IsDeductLeaveForConLate": null,
             "DeductLeaveType1Late": null,
             "DeductLeaveType2Late": null,
             "DeductLeaveType3Late": null,
             "IsSameForEveryLate": null,
             "IsConsiderHAbsConLateByMin": null,
             "MarkOrDeductDayLateByMin": 0.5,
             "WhenLateByMin": 0,
             "IsDeductLeaveForConLateByMin": null,
             "DeductLeaveType1LateByMin": null,
             "DeductLeaveType2LateByMin": null,
             "DeductLeaveType3LateByMin": null,
             "IsConsiderHAbsForContEarly": null,
             "MarkOrDeductDayEarly": 0.5,
             "WhenEarlyBy": 2,
             "IsDeductLeaveForConEarly": null,
             "DeductLeaveType1Early": null,
             "DeductLeaveType2Early": null,
             "DeductLeaveType3Early": null,
             "IsSameForEveryEarly": null,
             "IsConsiderHAbsForContEarlyByMin": null,
             "MarkOrDeductDayEarlyByMin": 0.5,
             "WhenEarlyByMin": 0,
             "IsDeductLeaveForConEarlyByMin": null,
             "DeductLeaveType1EarlyByMin": null,
             "DeductLeaveType2EarlyByMin": null,
             "DeductLeaveType3EarlyByMin": null,
             "ExcludedStatusForCon": "",
             "ProductionBiometricIds": "",
             "FlexiShiftId": 4,
             "IsMarkLateEarlyAsPerMnth": null,
             "DefaultOverTime": 1,
             "DefaultMinWOHOOT": 0,
             "IsNeglectLastInPunch": null,
             "IsCheckTillLastOut": 1,
             "IsOTNotApplicableOnOutStation": null,
             "IsOTNotApplicableOnFlexiAndOpenShift": null,
             "IsCheckForB24HrShift": 0,
             "IsRoundOffOT": null,
             "IsRoundDownOT": null,
             "IsCheckMissPunchStatus": 1,
             "WorkDurationFormula": 1,
             "created_at": "2022-11-17T13:00:44.000000Z",
             "updated_at": "2024-02-29T07:49:57.000000Z"
         }
    ],
    "meta": {
       "current_page": 1,
       "from": 1,
       "last_page": 3,
       "links": {
           "first": "https://app.timetaag.com/api/v1/GetAttendance?page=1",
           "last": "https://app.timetaag.com/api/v1/GetAttendance?page=3",
           "prev": null,
           "next": "https://app.timetaag.com/api/v1/GetAttendance?page=2"
       },
       "path": "https://app.timetaag.com/api/v1/GetAttendance",
       "per_page": 10,
       "to": 10,
       "total": 23
   },
}
 

Request   

GET api/v1/GetAttendance

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Attendance Rule

requires authentication

This endpoint is used to get single Attendance Rule from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetAttendance/3" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetAttendance/3"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Attendance Rule):


{
    "status": true,
    "code": 200,
    "data": {
        "AttSettingName": "Name",
        "AttSettingCode": "Code",
        "SetSinglePunchStatusAs": "1/2 Present",
        "ApplicableLeaves": "1",
        "WorkDurationFormula": "1",
        "GraceForLateComing": "2",
        "GraceForEarlying": "4",
        "MarkHalfDayWhenLateByMins": "1",
        "MarkHalfDayWhenEarlyByMins": "2",
        "HalfDayForLessDurationMin": "1",
        "AbsentForLessDurationMin": "4",
        "HalfDayParForLessDurationMin": "1",
        "AbsentParForLessDurationMin": "4",
        "ProductionBiometricIds": "3",
        "FlexiShiftId": "4",
        "OTFormula": "shift_hour",
        "DefaultOverTime": "2",
        "MinimumOT": "2",
        "MaximumOT": "4",
        "DefaultMinWOHOOT": "4",
        "IsOTNotApplicableOnOutStation": "0",
        "IsOTNotApplicableOnFlexiAndOpenShift": "1",
        "IsRoundOffOT": "1",
        "IsRoundDownOT": "0",
        "WeeklyOff1Day": "Sunday",
        "WeeklyOff1Occurence": "1,3",
        "WeeklyOff2Day": "Friday",
        "WeeklyOff2Occurence": "4",
        "IsValidateEarlyPunch": "1",
        "IsValidateLatePunch": "0",
        "IsDeductBreakDuration": "1",
        "IsConsiderFirstandLastPunch": "1",
        "IsWOPHOPInOT": "1",
        "IsNeglectLastInPunch": "0",
        "IsCheckTillLastOut": "0",
        "IsCheckMissPunchStatus": "1",
        "IsValPrefixAbsentOnWOHO": "1",
        "IsValSuffixAbsentOnWOHO": "0",
        "IsValPreSufAbsentOnWOHO": "0",
        "IsValLeaveForPrefixSuffix": "0",
        "IsAutoCompOff": "1",
        "HalfDayCoffForLessDurationMin": "5",
        "NoCoffForLessDurationMin": "3",
        "HalfDayCoffForLessOT": "0",
        "NoCoffForLessOT": "1",
        "IsMarkLateEarlyAsPerMnth": "1",
        "ExcludedStatusForCon": "2",
        "IsConsiderHAbsForContLate": "1",
        "MarkOrDeductDayLate": "0.5",
        "WhenLateBy": "2",
        "IsSameForEveryLate": "1",
        "IsDeductLeaveForConLate": "1",
        "DeductLeaveType1Late": "1",
        "DeductLeaveType2Late": "2",
        "DeductLeaveType3Late": "3",
        "IsConsiderHAbsForContEarly": "0",
        "MarkOrDeductDayEarly": "1",
        "WhenEarlyBy": "2",
        "IsSameForEveryEarly": "1",
        "IsDeductLeaveForConEarly": "0",
        "DeductLeaveType1Early": "0",
        "DeductLeaveType2Early": "2",
        "DeductLeaveType3Early": "4",
        "IsConsiderHAbsConLateByMin": "1",
        "MarkOrDeductDayLateByMin": "0.5",
        "WhenLateByMin": "1",
        "IsDeductLeaveForConLateByMin": "0",
        "DeductLeaveType1LateByMin": null,
        "DeductLeaveType2LateByMin": null,
        "DeductLeaveType3LateByMin": null,
        "IsConsiderHAbsForContEarlyByMin": "1",
        "MarkOrDeductDayEarlyByMin": "1",
        "WhenEarlyByMin": "2",
        "IsDeductLeaveForConEarlyByMin": "1",
        "DeductLeaveType1EarlyByMin": "1",
        "DeductLeaveType2EarlyByMin": "2",
        "DeductLeaveType3EarlyByMin": null,
        "updated_at": "2024-03-05T07:37:55.000000Z",
        "created_at": "2024-03-05T07:37:55.000000Z",
        "id": 5
    },
    "message": "Attendance Rule Retrieved Successfully."
}
 

Example response (400, Attendance Rule Not Found):


{
    "status": false,
    "code": 400,
    "message": "Attendance Rule Not Found."
}
 

Request   

GET api/v1/GetAttendance/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the attendance. Example: 3

Delete Attendance Rule

requires authentication

This endpoint is used to delete Attendance Rule from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteAttendance/3" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteAttendance/3"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Attendance Rule):


{
    "status": true,
    "code": 200,
    "message": "Attendance Rule Deleted Successfully."
}
 

Example response (400, Attendance Rule Not Found):


{
    "status": false,
    "code": 400,
    "message": "Attendance Rule Not Found."
}
 

Request   

DELETE api/v1/DeleteAttendance/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the Attendance Rule. Example: 3

Add Attendance Rule

requires authentication

This endpoint is used to add Attendance Rule to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddAttendance" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"AttSettingName\": \"Test\",
    \"AttSettingCode\": \"test\",
    \"single_punch_status\": \"1\\/2 Present\",
    \"applicable_leaves\": \"1,2\",
    \"work_duration_formula\": 1,
    \"grace_forlatecoming\": 1,
    \"grace_forearlygoing\": 1,
    \"mark_halfdaywhenlatebymins\": 1,
    \"mark_halfdaywhenearlybymins\": 1,
    \"halfday_forlessdurationmin\": 1,
    \"absent_forlessdurationmin\": 1,
    \"production_biometrics\": \"1,2\",
    \"flexi_shift\": 1,
    \"ot_formula\": \"shift_hour\",
    \"default_ot\": 1,
    \"min_ot\": 1,
    \"max_ot\": 1,
    \"min_woho_ot\": 1,
    \"no_ot_on_out_station\": 1,
    \"no_ot_on_flexi_open_shift\": 1,
    \"round_off_ot\": 1,
    \"round_down_ot\": 1,
    \"weekly_off1\": \"Sunday\",
    \"weekoff1_day\": \"1,3\",
    \"weekly_off2\": \"Monday\",
    \"weekoff2_day\": \"1,4\",
    \"validate_early_punch\": 1,
    \"validate_late_punch\": 0,
    \"deduct_break_hour\": 1,
    \"first_last_punch\": 1,
    \"wop_hop\": 1,
    \"neglect_last_punch\": 1,
    \"check_till_last\": 1,
    \"check_miss_punch\": 1,
    \"prefix_absent_on_woho\": 1,
    \"suffix_absent_on_woho\": 1,
    \"ps_absent_on_woho\": 1,
    \"ps_leave_on_woho\": 1,
    \"auto_compoff\": 1,
    \"coff_less\": 1,
    \"no_coff_less\": 1,
    \"coff_less_ot\": 1,
    \"no_coff_less_ot\": 1,
    \"mark_late_early\": 1,
    \"exclusive_status\": \"1,2\",
    \"late_mark_attendance\": 1,
    \"late_mark_deduct\": 0,
    \"late_for\": 1,
    \"late_deduct_leave\": 1,
    \"late_leave1\": 1,
    \"late_leave2\": 1,
    \"late_leave3\": 1,
    \"early_mark_attendance\": 1,
    \"early_mark_deduct\": 1,
    \"early_by\": 1,
    \"every_early\": 1,
    \"early_deduct_leave\": 1,
    \"early_leave1\": 1,
    \"early_leave2\": 1,
    \"early_leave3\": 1,
    \"late_mins_mark_attendance\": 1,
    \"late_mins_mark_deduct\": 1,
    \"late_mins_late_for\": 1,
    \"late_mins_deduct_leave\": 1,
    \"late_mins_leave1\": 1,
    \"late_mins_leave2\": 1,
    \"late_mins_leave3\": 1,
    \"early_mins_mark_attendance\": 1,
    \"early_mins_mark_deduct\": 1,
    \"early_mins_earlyby\": 1,
    \"early_mins_deduct_leave\": 1,
    \"early_mins_leave1\": 1,
    \"early_mins_leave2\": 1,
    \"early_mins_leave3\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddAttendance"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "AttSettingName": "Test",
    "AttSettingCode": "test",
    "single_punch_status": "1\/2 Present",
    "applicable_leaves": "1,2",
    "work_duration_formula": 1,
    "grace_forlatecoming": 1,
    "grace_forearlygoing": 1,
    "mark_halfdaywhenlatebymins": 1,
    "mark_halfdaywhenearlybymins": 1,
    "halfday_forlessdurationmin": 1,
    "absent_forlessdurationmin": 1,
    "production_biometrics": "1,2",
    "flexi_shift": 1,
    "ot_formula": "shift_hour",
    "default_ot": 1,
    "min_ot": 1,
    "max_ot": 1,
    "min_woho_ot": 1,
    "no_ot_on_out_station": 1,
    "no_ot_on_flexi_open_shift": 1,
    "round_off_ot": 1,
    "round_down_ot": 1,
    "weekly_off1": "Sunday",
    "weekoff1_day": "1,3",
    "weekly_off2": "Monday",
    "weekoff2_day": "1,4",
    "validate_early_punch": 1,
    "validate_late_punch": 0,
    "deduct_break_hour": 1,
    "first_last_punch": 1,
    "wop_hop": 1,
    "neglect_last_punch": 1,
    "check_till_last": 1,
    "check_miss_punch": 1,
    "prefix_absent_on_woho": 1,
    "suffix_absent_on_woho": 1,
    "ps_absent_on_woho": 1,
    "ps_leave_on_woho": 1,
    "auto_compoff": 1,
    "coff_less": 1,
    "no_coff_less": 1,
    "coff_less_ot": 1,
    "no_coff_less_ot": 1,
    "mark_late_early": 1,
    "exclusive_status": "1,2",
    "late_mark_attendance": 1,
    "late_mark_deduct": 0,
    "late_for": 1,
    "late_deduct_leave": 1,
    "late_leave1": 1,
    "late_leave2": 1,
    "late_leave3": 1,
    "early_mark_attendance": 1,
    "early_mark_deduct": 1,
    "early_by": 1,
    "every_early": 1,
    "early_deduct_leave": 1,
    "early_leave1": 1,
    "early_leave2": 1,
    "early_leave3": 1,
    "late_mins_mark_attendance": 1,
    "late_mins_mark_deduct": 1,
    "late_mins_late_for": 1,
    "late_mins_deduct_leave": 1,
    "late_mins_leave1": 1,
    "late_mins_leave2": 1,
    "late_mins_leave3": 1,
    "early_mins_mark_attendance": 1,
    "early_mins_mark_deduct": 1,
    "early_mins_earlyby": 1,
    "early_mins_deduct_leave": 1,
    "early_mins_leave1": 1,
    "early_mins_leave2": 1,
    "early_mins_leave3": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Attendance):


{
    "status": true,
    "code": 200,
    "data": {
        "AttSettingName": "Name",
        "AttSettingCode": "Code",
        "SetSinglePunchStatusAs": "1/2 Present",
        "ApplicableLeaves": "1",
        "WorkDurationFormula": "1",
        "GraceForLateComing": "2",
        "GraceForEarlying": "4",
        "MarkHalfDayWhenLateByMins": "1",
        "MarkHalfDayWhenEarlyByMins": "2",
        "HalfDayForLessDurationMin": "1",
        "AbsentForLessDurationMin": "4",
        "HalfDayParForLessDurationMin": "1",
        "AbsentParForLessDurationMin": "4",
        "ProductionBiometricIds": "3",
        "FlexiShiftId": "4",
        "OTFormula": "shift_hour",
        "DefaultOverTime": "2",
        "MinimumOT": "2",
        "MaximumOT": "4",
        "DefaultMinWOHOOT": "4",
        "IsOTNotApplicableOnOutStation": "0",
        "IsOTNotApplicableOnFlexiAndOpenShift": "1",
        "IsRoundOffOT": "1",
        "IsRoundDownOT": "0",
        "WeeklyOff1Day": "Sunday",
        "WeeklyOff1Occurence": "1,3",
        "WeeklyOff2Day": "Friday",
        "WeeklyOff2Occurence": "4",
        "IsValidateEarlyPunch": "1",
        "IsValidateLatePunch": "0",
        "IsDeductBreakDuration": "1",
        "IsConsiderFirstandLastPunch": "1",
        "IsWOPHOPInOT": "1",
        "IsNeglectLastInPunch": "0",
        "IsCheckTillLastOut": "0",
        "IsCheckMissPunchStatus": "1",
        "IsValPrefixAbsentOnWOHO": "1",
        "IsValSuffixAbsentOnWOHO": "0",
        "IsValPreSufAbsentOnWOHO": "0",
        "IsValLeaveForPrefixSuffix": "0",
        "IsAutoCompOff": "1",
        "HalfDayCoffForLessDurationMin": "5",
        "NoCoffForLessDurationMin": "3",
        "HalfDayCoffForLessOT": "0",
        "NoCoffForLessOT": "1",
        "IsMarkLateEarlyAsPerMnth": "1",
        "ExcludedStatusForCon": "2",
        "IsConsiderHAbsForContLate": "1",
        "MarkOrDeductDayLate": "0.5",
        "WhenLateBy": "2",
        "IsSameForEveryLate": "1",
        "IsDeductLeaveForConLate": "1",
        "DeductLeaveType1Late": "1",
        "DeductLeaveType2Late": "2",
        "DeductLeaveType3Late": "3",
        "IsConsiderHAbsForContEarly": "0",
        "MarkOrDeductDayEarly": "1",
        "WhenEarlyBy": "2",
        "IsSameForEveryEarly": "1",
        "IsDeductLeaveForConEarly": "0",
        "DeductLeaveType1Early": "0",
        "DeductLeaveType2Early": "2",
        "DeductLeaveType3Early": "4",
        "IsConsiderHAbsConLateByMin": "1",
        "MarkOrDeductDayLateByMin": "0.5",
        "WhenLateByMin": "1",
        "IsDeductLeaveForConLateByMin": "0",
        "DeductLeaveType1LateByMin": null,
        "DeductLeaveType2LateByMin": null,
        "DeductLeaveType3LateByMin": null,
        "IsConsiderHAbsForContEarlyByMin": "1",
        "MarkOrDeductDayEarlyByMin": "1",
        "WhenEarlyByMin": "2",
        "IsDeductLeaveForConEarlyByMin": "1",
        "DeductLeaveType1EarlyByMin": "1",
        "DeductLeaveType2EarlyByMin": "2",
        "DeductLeaveType3EarlyByMin": null,
        "updated_at": "2024-03-05T07:37:55.000000Z",
        "created_at": "2024-03-05T07:37:55.000000Z",
        "id": 5
    },
    "message": "Attendance Rule Created Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "attendance_name": [
          "validation.required"
        ],
        "attendance_code": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddAttendance

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

AttSettingName   string   

unique Example: Test

AttSettingCode   string   

unique Example: test

single_punch_status   string  optional  

Example: 1/2 Present

applicable_leaves   string  optional  

Example: 1,2

work_duration_formula   integer  optional  

Example: 1

grace_forlatecoming   integer  optional  

Example: 1

grace_forearlygoing   integer  optional  

Example: 1

mark_halfdaywhenlatebymins   integer  optional  

Example: 1

mark_halfdaywhenearlybymins   integer  optional  

Example: 1

halfday_forlessdurationmin   integer  optional  

Example: 1

absent_forlessdurationmin   integer  optional  

Example: 1

production_biometrics   string  optional  

Example: 1,2

flexi_shift   integer  optional  

Example: 1

ot_formula   string  optional  

Example: shift_hour

default_ot   integer  optional  

Example: 1

min_ot   integer  optional  

Example: 1

max_ot   integer  optional  

Example: 1

min_woho_ot   integer  optional  

Example: 1

no_ot_on_out_station   integer  optional  

Example: 1

no_ot_on_flexi_open_shift   integer  optional  

Example: 1

round_off_ot   integer  optional  

Example: 1

round_down_ot   integer  optional  

Example: 1

weekly_off1   string  optional  

Example: Sunday

weekoff1_day   string  optional  

Example: 1,3

weekly_off2   string  optional  

Example: Monday

weekoff2_day   string  optional  

Example: 1,4

validate_early_punch   integer  optional  

Example: 1

validate_late_punch   integer  optional  

Example: 0

deduct_break_hour   integer  optional  

Example: 1

first_last_punch   integer  optional  

Example: 1

wop_hop   integer  optional  

Example: 1

neglect_last_punch   integer  optional  

Example: 1

check_till_last   integer  optional  

Example: 1

check_miss_punch   integer  optional  

Example: 1

prefix_absent_on_woho   integer  optional  

Example: 1

suffix_absent_on_woho   integer  optional  

Example: 1

ps_absent_on_woho   integer  optional  

Example: 1

ps_leave_on_woho   integer  optional  

Example: 1

auto_compoff   integer  optional  

Example: 1

coff_less   integer  optional  

Example: 1

no_coff_less   integer  optional  

Example: 1

coff_less_ot   integer  optional  

Example: 1

no_coff_less_ot   integer  optional  

Example: 1

mark_late_early   integer  optional  

Example: 1

exclusive_status   string  optional  

Example: 1,2

late_mark_attendance   integer  optional  

Example: 1

late_mark_deduct   integer  optional  

Example: 0

late_for   integer  optional  

Example: 1

late_deduct_leave   integer  optional  

Example: 1

late_leave1   integer  optional  

Example: 1

late_leave2   integer  optional  

Example: 1

late_leave3   integer  optional  

Example: 1

early_mark_attendance   integer  optional  

Example: 1

early_mark_deduct   integer  optional  

Example: 1

early_by   integer  optional  

Example: 1

every_early   integer  optional  

Example: 1

early_deduct_leave   integer  optional  

Example: 1

early_leave1   integer  optional  

Example: 1

early_leave2   integer  optional  

Example: 1

early_leave3   integer  optional  

Example: 1

late_mins_mark_attendance   integer  optional  

Example: 1

late_mins_mark_deduct   integer  optional  

Example: 1

late_mins_late_for   integer  optional  

Example: 1

late_mins_deduct_leave   integer  optional  

Example: 1

late_mins_leave1   integer  optional  

Example: 1

late_mins_leave2   integer  optional  

Example: 1

late_mins_leave3   integer  optional  

Example: 1

early_mins_mark_attendance   integer  optional  

Example: 1

early_mins_mark_deduct   integer  optional  

Example: 1

early_mins_earlyby   integer  optional  

Example: 1

early_mins_deduct_leave   integer  optional  

Example: 1

early_mins_leave1   integer  optional  

Example: 1

early_mins_leave2   integer  optional  

Example: 1

early_mins_leave3   integer  optional  

Example: 1

Update Attendance Rule

requires authentication

This endpoint is used to update Attendance Rule to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateAttendance/10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"attendance_name\": \"id\",
    \"attendance_code\": \"ut\",
    \"AttSettingName\": \"Test\",
    \"AttSettingCode\": \"test\",
    \"single_punch_status\": \"1\\/2 Present\",
    \"applicable_leaves\": \"1,2\",
    \"work_duration_formula\": 1,
    \"grace_forlatecoming\": 1,
    \"grace_forearlygoing\": 1,
    \"mark_halfdaywhenlatebymins\": 1,
    \"mark_halfdaywhenearlybymins\": 1,
    \"halfday_forlessdurationmin\": 1,
    \"absent_forlessdurationmin\": 1,
    \"production_biometrics\": \"1,2\",
    \"flexi_shift\": 1,
    \"ot_formula\": \"shift_hour\",
    \"default_ot\": 1,
    \"min_ot\": 1,
    \"max_ot\": 1,
    \"min_woho_ot\": 1,
    \"no_ot_on_out_station\": 1,
    \"no_ot_on_flexi_open_shift\": 1,
    \"round_off_ot\": 1,
    \"round_down_ot\": 1,
    \"weekly_off1\": \"Sunday\",
    \"weekoff1_day\": \"1,3\",
    \"weekly_off2\": \"Monday\",
    \"weekoff2_day\": \"1,4\",
    \"validate_early_punch\": 1,
    \"validate_late_punch\": 0,
    \"deduct_break_hour\": 1,
    \"first_last_punch\": 1,
    \"wop_hop\": 1,
    \"neglect_last_punch\": 1,
    \"check_till_last\": 1,
    \"check_miss_punch\": 1,
    \"prefix_absent_on_woho\": 1,
    \"suffix_absent_on_woho\": 1,
    \"ps_absent_on_woho\": 1,
    \"ps_leave_on_woho\": 1,
    \"auto_compoff\": 1,
    \"coff_less\": 1,
    \"no_coff_less\": 1,
    \"coff_less_ot\": 1,
    \"no_coff_less_ot\": 1,
    \"mark_late_early\": 1,
    \"exclusive_status\": \"1,2\",
    \"late_mark_attendance\": 1,
    \"late_mark_deduct\": 0,
    \"late_for\": 1,
    \"late_deduct_leave\": 1,
    \"late_leave1\": 1,
    \"late_leave2\": 1,
    \"late_leave3\": 1,
    \"early_mark_attendance\": 1,
    \"early_mark_deduct\": 1,
    \"early_by\": 1,
    \"every_early\": 1,
    \"early_deduct_leave\": 1,
    \"early_leave1\": 1,
    \"early_leave2\": 1,
    \"early_leave3\": 1,
    \"late_mins_mark_attendance\": 1,
    \"late_mins_mark_deduct\": 1,
    \"late_mins_late_for\": 1,
    \"late_mins_deduct_leave\": 1,
    \"late_mins_leave1\": 1,
    \"late_mins_leave2\": 1,
    \"late_mins_leave3\": 1,
    \"early_mins_mark_attendance\": 1,
    \"early_mins_mark_deduct\": 1,
    \"early_mins_earlyby\": 1,
    \"early_mins_deduct_leave\": 1,
    \"early_mins_leave1\": 1,
    \"early_mins_leave2\": 1,
    \"early_mins_leave3\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateAttendance/10"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "attendance_name": "id",
    "attendance_code": "ut",
    "AttSettingName": "Test",
    "AttSettingCode": "test",
    "single_punch_status": "1\/2 Present",
    "applicable_leaves": "1,2",
    "work_duration_formula": 1,
    "grace_forlatecoming": 1,
    "grace_forearlygoing": 1,
    "mark_halfdaywhenlatebymins": 1,
    "mark_halfdaywhenearlybymins": 1,
    "halfday_forlessdurationmin": 1,
    "absent_forlessdurationmin": 1,
    "production_biometrics": "1,2",
    "flexi_shift": 1,
    "ot_formula": "shift_hour",
    "default_ot": 1,
    "min_ot": 1,
    "max_ot": 1,
    "min_woho_ot": 1,
    "no_ot_on_out_station": 1,
    "no_ot_on_flexi_open_shift": 1,
    "round_off_ot": 1,
    "round_down_ot": 1,
    "weekly_off1": "Sunday",
    "weekoff1_day": "1,3",
    "weekly_off2": "Monday",
    "weekoff2_day": "1,4",
    "validate_early_punch": 1,
    "validate_late_punch": 0,
    "deduct_break_hour": 1,
    "first_last_punch": 1,
    "wop_hop": 1,
    "neglect_last_punch": 1,
    "check_till_last": 1,
    "check_miss_punch": 1,
    "prefix_absent_on_woho": 1,
    "suffix_absent_on_woho": 1,
    "ps_absent_on_woho": 1,
    "ps_leave_on_woho": 1,
    "auto_compoff": 1,
    "coff_less": 1,
    "no_coff_less": 1,
    "coff_less_ot": 1,
    "no_coff_less_ot": 1,
    "mark_late_early": 1,
    "exclusive_status": "1,2",
    "late_mark_attendance": 1,
    "late_mark_deduct": 0,
    "late_for": 1,
    "late_deduct_leave": 1,
    "late_leave1": 1,
    "late_leave2": 1,
    "late_leave3": 1,
    "early_mark_attendance": 1,
    "early_mark_deduct": 1,
    "early_by": 1,
    "every_early": 1,
    "early_deduct_leave": 1,
    "early_leave1": 1,
    "early_leave2": 1,
    "early_leave3": 1,
    "late_mins_mark_attendance": 1,
    "late_mins_mark_deduct": 1,
    "late_mins_late_for": 1,
    "late_mins_deduct_leave": 1,
    "late_mins_leave1": 1,
    "late_mins_leave2": 1,
    "late_mins_leave3": 1,
    "early_mins_mark_attendance": 1,
    "early_mins_mark_deduct": 1,
    "early_mins_earlyby": 1,
    "early_mins_deduct_leave": 1,
    "early_mins_leave1": 1,
    "early_mins_leave2": 1,
    "early_mins_leave3": 1
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Attendance Rule):


{
    "status": true,
    "code": 200,
    "data": {
        "AttSettingName": "Name",
        "AttSettingCode": "Code",
        "SetSinglePunchStatusAs": "1/2 Present",
        "ApplicableLeaves": "1",
        "WorkDurationFormula": "1",
        "GraceForLateComing": "2",
        "GraceForEarlying": "4",
        "MarkHalfDayWhenLateByMins": "1",
        "MarkHalfDayWhenEarlyByMins": "2",
        "HalfDayForLessDurationMin": "1",
        "AbsentForLessDurationMin": "4",
        "HalfDayParForLessDurationMin": "1",
        "AbsentParForLessDurationMin": "4",
        "ProductionBiometricIds": "3",
        "FlexiShiftId": "4",
        "OTFormula": "shift_hour",
        "DefaultOverTime": "2",
        "MinimumOT": "2",
        "MaximumOT": "4",
        "DefaultMinWOHOOT": "4",
        "IsOTNotApplicableOnOutStation": "0",
        "IsOTNotApplicableOnFlexiAndOpenShift": "1",
        "IsRoundOffOT": "1",
        "IsRoundDownOT": "0",
        "WeeklyOff1Day": "Sunday",
        "WeeklyOff1Occurence": "1,3",
        "WeeklyOff2Day": "Friday",
        "WeeklyOff2Occurence": "4",
        "IsValidateEarlyPunch": "1",
        "IsValidateLatePunch": "0",
        "IsDeductBreakDuration": "1",
        "IsConsiderFirstandLastPunch": "1",
        "IsWOPHOPInOT": "1",
        "IsNeglectLastInPunch": "0",
        "IsCheckTillLastOut": "0",
        "IsCheckMissPunchStatus": "1",
        "IsValPrefixAbsentOnWOHO": "1",
        "IsValSuffixAbsentOnWOHO": "0",
        "IsValPreSufAbsentOnWOHO": "0",
        "IsValLeaveForPrefixSuffix": "0",
        "IsAutoCompOff": "1",
        "HalfDayCoffForLessDurationMin": "5",
        "NoCoffForLessDurationMin": "3",
        "HalfDayCoffForLessOT": "0",
        "NoCoffForLessOT": "1",
        "IsMarkLateEarlyAsPerMnth": "1",
        "ExcludedStatusForCon": "2",
        "IsConsiderHAbsForContLate": "1",
        "MarkOrDeductDayLate": "0.5",
        "WhenLateBy": "2",
        "IsSameForEveryLate": "1",
        "IsDeductLeaveForConLate": "1",
        "DeductLeaveType1Late": "1",
        "DeductLeaveType2Late": "2",
        "DeductLeaveType3Late": "3",
        "IsConsiderHAbsForContEarly": "0",
        "MarkOrDeductDayEarly": "1",
        "WhenEarlyBy": "2",
        "IsSameForEveryEarly": "1",
        "IsDeductLeaveForConEarly": "0",
        "DeductLeaveType1Early": "0",
        "DeductLeaveType2Early": "2",
        "DeductLeaveType3Early": "4",
        "IsConsiderHAbsConLateByMin": "1",
        "MarkOrDeductDayLateByMin": "0.5",
        "WhenLateByMin": "1",
        "IsDeductLeaveForConLateByMin": "0",
        "DeductLeaveType1LateByMin": null,
        "DeductLeaveType2LateByMin": null,
        "DeductLeaveType3LateByMin": null,
        "IsConsiderHAbsForContEarlyByMin": "1",
        "MarkOrDeductDayEarlyByMin": "1",
        "WhenEarlyByMin": "2",
        "IsDeductLeaveForConEarlyByMin": "1",
        "DeductLeaveType1EarlyByMin": "1",
        "DeductLeaveType2EarlyByMin": "2",
        "DeductLeaveType3EarlyByMin": null,
        "updated_at": "2024-03-05T07:37:55.000000Z",
        "created_at": "2024-03-05T07:37:55.000000Z",
        "id": 5
    },
    "message": "Attendance Rule Update Successfully."
}
 

Example response (400, Attendance Rule Not Found):


{
    "status": false,
    "code": 400,
    "message": "Attendance Rule Not Found."
}
 

Request   

PATCH api/v1/UpdateAttendance/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the Attendance Rule. Example: 10

Body Parameters

attendance_name   string   

Example: id

attendance_code   string   

Example: ut

AttSettingName   string   

unique Example: Test

AttSettingCode   string   

unique Example: test

single_punch_status   string  optional  

Example: 1/2 Present

applicable_leaves   string  optional  

Example: 1,2

work_duration_formula   integer  optional  

Example: 1

grace_forlatecoming   integer  optional  

Example: 1

grace_forearlygoing   integer  optional  

Example: 1

mark_halfdaywhenlatebymins   integer  optional  

Example: 1

mark_halfdaywhenearlybymins   integer  optional  

Example: 1

halfday_forlessdurationmin   integer  optional  

Example: 1

absent_forlessdurationmin   integer  optional  

Example: 1

production_biometrics   string  optional  

Example: 1,2

flexi_shift   integer  optional  

Example: 1

ot_formula   string  optional  

Example: shift_hour

default_ot   integer  optional  

Example: 1

min_ot   integer  optional  

Example: 1

max_ot   integer  optional  

Example: 1

min_woho_ot   integer  optional  

Example: 1

no_ot_on_out_station   integer  optional  

Example: 1

no_ot_on_flexi_open_shift   integer  optional  

Example: 1

round_off_ot   integer  optional  

Example: 1

round_down_ot   integer  optional  

Example: 1

weekly_off1   string  optional  

Example: Sunday

weekoff1_day   string  optional  

Example: 1,3

weekly_off2   string  optional  

Example: Monday

weekoff2_day   string  optional  

Example: 1,4

validate_early_punch   integer  optional  

Example: 1

validate_late_punch   integer  optional  

Example: 0

deduct_break_hour   integer  optional  

Example: 1

first_last_punch   integer  optional  

Example: 1

wop_hop   integer  optional  

Example: 1

neglect_last_punch   integer  optional  

Example: 1

check_till_last   integer  optional  

Example: 1

check_miss_punch   integer  optional  

Example: 1

prefix_absent_on_woho   integer  optional  

Example: 1

suffix_absent_on_woho   integer  optional  

Example: 1

ps_absent_on_woho   integer  optional  

Example: 1

ps_leave_on_woho   integer  optional  

Example: 1

auto_compoff   integer  optional  

Example: 1

coff_less   integer  optional  

Example: 1

no_coff_less   integer  optional  

Example: 1

coff_less_ot   integer  optional  

Example: 1

no_coff_less_ot   integer  optional  

Example: 1

mark_late_early   integer  optional  

Example: 1

exclusive_status   string  optional  

Example: 1,2

late_mark_attendance   integer  optional  

Example: 1

late_mark_deduct   integer  optional  

Example: 0

late_for   integer  optional  

Example: 1

late_deduct_leave   integer  optional  

Example: 1

late_leave1   integer  optional  

Example: 1

late_leave2   integer  optional  

Example: 1

late_leave3   integer  optional  

Example: 1

early_mark_attendance   integer  optional  

Example: 1

early_mark_deduct   integer  optional  

Example: 1

early_by   integer  optional  

Example: 1

every_early   integer  optional  

Example: 1

early_deduct_leave   integer  optional  

Example: 1

early_leave1   integer  optional  

Example: 1

early_leave2   integer  optional  

Example: 1

early_leave3   integer  optional  

Example: 1

late_mins_mark_attendance   integer  optional  

Example: 1

late_mins_mark_deduct   integer  optional  

Example: 1

late_mins_late_for   integer  optional  

Example: 1

late_mins_deduct_leave   integer  optional  

Example: 1

late_mins_leave1   integer  optional  

Example: 1

late_mins_leave2   integer  optional  

Example: 1

late_mins_leave3   integer  optional  

Example: 1

early_mins_mark_attendance   integer  optional  

Example: 1

early_mins_mark_deduct   integer  optional  

Example: 1

early_mins_earlyby   integer  optional  

Example: 1

early_mins_deduct_leave   integer  optional  

Example: 1

early_mins_leave1   integer  optional  

Example: 1

early_mins_leave2   integer  optional  

Example: 1

early_mins_leave3   integer  optional  

Example: 1

Branchs

APIs for managing Branchs

Get Branchs

requires authentication

This endpoint is used to fetch all branches available in the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetBranch" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetBranch"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Branches):


{
     "status": true,
     "code": 200,
     "data": [
          {
              "id": 1,
              "name": "BranchName",
              "code": "b1",
              "email": "defaultbranch@gmail.com",
              "address": "default",
              "created_at": "2022-11-17T11:29:01.000000Z",
              "updated_at": "2022-11-17T11:29:01.000000Z"
          },
     ],
     "message": "Branch Retrieved Successfully."
}
 

Request   

GET api/v1/GetBranch

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Branch

requires authentication

This endpoint is used to get a branch from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetBranch/14" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetBranch/14"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Branch):


{
    "status": true,
    "code": 200,
    "data": {
        "name": "Test",
        "code": "test",
        "email": "apidemo@timetaag.com",
        "address": "123459",
        "updated_at": "2024-03-05T05:13:19.000000Z",
        "created_at": "2024-03-05T05:13:19.000000Z",
        "id": 3
    },
    "message": "Branch Retrieved Successfully."
}
 

Example response (400, Branch Not Found):


{
    "status": false,
    "code": 400,
    "message": "Branch Not Found."
}
 

Request   

GET api/v1/GetBranch/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the branch. Example: 14

Delete Branch

requires authentication

This endpoint is used to delete a branch from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteBranch/voluptas" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteBranch/voluptas"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Branch):


{
    "status": true,
    "code": 200,
    "message": "Branch Deleted Successfully."
}
 

Example response (400, Branch Not Found):


{
    "status": false,
    "code": 400,
    "message": "Branch Not Found."
}
 

Request   

DELETE api/v1/DeleteBranch/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the DeleteBranch. Example: voluptas

Add Branch

requires authentication

This endpoint is used to add branch to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddBranch" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Test\",
    \"code\": \"test\",
    \"email\": \"apidemo@timetaag.com\",
    \"address\": \"123459\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddBranch"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "name": "Test",
    "code": "test",
    "email": "apidemo@timetaag.com",
    "address": "123459"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Branch):


{
    "status": true,
    "code": 200,
    "data": {
        "name": "Test",
        "code": "test",
        "email": "apidemo@timetaag.com",
        "address": "123459",
        "updated_at": "2024-03-05T05:13:19.000000Z",
        "created_at": "2024-03-05T05:13:19.000000Z",
        "id": 3
    },
    "message": "Branch Created Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "name": [
          "validation.required"
        ],
        "dept_code": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddBranch

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

name   string   

unique Example: Test

code   string   

unique Example: test

email   string  optional  

Example: apidemo@timetaag.com

address   string  optional  

Example: 123459

Update Branch

requires authentication

This endpoint is used to update a branch to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateBranch/6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Test\",
    \"code\": \"test\",
    \"email\": \"apidemo@timetaag.com\",
    \"address\": \"123459\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateBranch/6"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "name": "Test",
    "code": "test",
    "email": "apidemo@timetaag.com",
    "address": "123459"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Branch):


{
    "status": true,
    "code": 200,
    "data": {
        "name": "Test",
        "code": "test",
        "email": "apidemo@timetaag.com",
        "address": "123459",
        "updated_at": "2024-03-05T05:13:19.000000Z",
        "created_at": "2024-03-05T05:13:19.000000Z",
        "id": 3
    },
    "message": "Branch Updated Successfully."
}
 

Example response (400, Branch Not Found):


{
    "status": false,
    "code": 400,
    "message": "Branch Not Found."
}
 

Request   

PATCH api/v1/UpdateBranch/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the branch. Example: 6

Body Parameters

name   string   

unique Example: Test

code   string   

unique Example: test

email   string  optional  

Example: apidemo@timetaag.com

address   string  optional  

Example: 123459

Departments

APIs for managing Departments

Get Departments

requires authentication

This endpoint is used to fetch all departments from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetDepartments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetDepartments"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Departments):


{
     "status": true,
     "code": 200,
     "message": "Department Retrieved Successfully.",
     "data": [
          {
              "id": 7,
              "dept_name": "Administration",
              "dept_code": "Admin",
              "description": "Administration",
              "created_at": "-000001-11-29T20:18:48.000000Z",
              "updated_at": "-000001-11-29T20:18:48.000000Z"
          },
      ],
     "meta": {
          "current_page": 1,
          "from": 1,
          "last_page": 3,
          "links": {
              "first": "https://app.timetaag.com/api/v1/GetDepartments?page=1",
              "last": "https://app.timetaag.com/api/v1/GetDepartments?page=3",
              "prev": null,
              "next": "https://app.timetaag.com/api/v1/GetDepartments?page=2"
          },
          "path": "https://app.timetaag.com/api/v1/GetDepartments",
          "per_page": 10,
          "to": 10,
          "total": 23
      },
}
 

Request   

GET api/v1/GetDepartments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Department

requires authentication

This endpoint is used to get single department to the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetDepartment/17" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetDepartment/17"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Department):


{
    "status": true,
    "code": 200,
    "data": {
        "dept_name": "Abc",
        "dept_code": "abc",
        "description": "ABC",
        "updated_at": "2024-03-05T04:42:47.000000Z",
        "created_at": "2024-03-05T04:42:47.000000Z",
        "id": 9
    },
    "message": "Department Retrieved Successfully."
}
 

Example response (400, Department Not Found):


{
    "status": false,
    "code": 400,
    "message": "Department Not Found."
}
 

Request   

GET api/v1/GetDepartment/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the department. Example: 17

Delete Department

requires authentication

This endpoint is used to delete department from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteDepartment/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteDepartment/5"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Department):


{
      "status": true,
      "code": 200
      "message": "Department Deleted Successfully."
}
 

Example response (400, Department Not Found):


{
    "status": false,
    "code": 400,
    "message": "Department Not Found."
}
 

Request   

DELETE api/v1/DeleteDepartment/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the department. Example: 5

Add Department

requires authentication

This endpoint is used to add department to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddDepartment" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"dept_name\": \"Abc\",
    \"dept_code\": \"abc\",
    \"description\": \"ABC\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddDepartment"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "dept_name": "Abc",
    "dept_code": "abc",
    "description": "ABC"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Department):


{
    "status": true,
    "code": 200,
    "data": {
        "dept_name": "Abc",
        "dept_code": "abc",
        "description": "ABC",
        "updated_at": "2024-03-05T04:42:47.000000Z",
        "created_at": "2024-03-05T04:42:47.000000Z",
        "id": 9
    },
    "message": "Department Created Successfully.."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "dept_name": [
          "validation.required"
        ],
        "dept_code": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddDepartment

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

dept_name   string   

unique Example: Abc

dept_code   string   

unique Example: abc

description   string  optional  

Example: ABC

Update Department

requires authentication

This endpoint is used to update department to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateDepartment/11" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"dept_name\": \"Abc\",
    \"dept_code\": \"abc\",
    \"description\": \"ABC\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateDepartment/11"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "dept_name": "Abc",
    "dept_code": "abc",
    "description": "ABC"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Department):


{
    "status": true,
    "code": 200,
    "data": {
        "dept_name": "Abc",
        "dept_code": "abc",
        "description": "ABC",
        "updated_at": "2024-03-05T04:42:47.000000Z",
        "created_at": "2024-03-05T04:42:47.000000Z",
        "id": 9
    },
    "message": "Department Updated Successfully.."
}
 

Example response (400, Department Not Found):


{
    "status": false,
    "code": 400,
    "message": "Department Not Found."
}
 

Request   

PATCH api/v1/UpdateDepartment/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the department. Example: 11

Body Parameters

dept_name   string   

unique Example: Abc

dept_code   string   

unique Example: abc

description   string  optional  

Example: ABC

Devices

APIs for managing Devices

Get Devices

requires authentication

This endpoint is used to fetch all devices from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetDevices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetDevices"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Devices):


{
     "status": true,
     "code": 200,
     "message": "Biometrics Devices Retrieved Successfully."
     "data": [
          {
             "id": 5,
             "name": "Device1",
             "code": "DEV1",
             "direction": "Alternate Direction",
             "serial_number": "DEVICESERAILNO",
             "ip_address": "192.168.1.201",
             "FPCount": "5",
             "FaceCount": 2,
             "UserCount": "18",
             "AttLogsCount": "61",
             "OnlineStatus": null,
             "FirmwareVersion": "Ver 8.0.4.2-20180713",
             "LastSwipeDownloadedOn": "2024-02-05 10:04:42",
             "LastCommunicateToServer": "2024-02-07 15:03:59",
             "biomatric_for": "1",
             "branch": "1",
             "timezone": "87",
             "biomatric_grp": "none",
             "location": "1"
         }
      ],
     "meta": {
          "current_page": 1,
          "from": 1,
          "last_page": 3,
          "links": {
              "first": "https://app.timetaag.com/api/v1/GetDevices?page=1",
              "last": "https://app.timetaag.com/api/v1/GetDevices?page=3",
              "prev": null,
              "next": "https://app.timetaag.com/api/v1/GetDevices?page=2"
          },
          "path": "https://app.timetaag.com/api/v1/GetDevices",
          "per_page": 10,
          "to": 10,
          "total": 23
      }
}
 

Request   

GET api/v1/GetDevices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Device

requires authentication

This endpoint is used to get single Device from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetDevice/19" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetDevice/19"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Device):


{
     "status": true,
     "code": 200,
     "message": "Biometric Device Retrieved Successfully.",
      "data": {
         "id": 5,
         "name": "Device1",
         "code": "DEV1",
         "direction": "Alternate Direction",
         "serial_number": "DEVICESERAILNO",
         "ip_address": "192.168.1.201",
         "FPCount": "5",
         "FaceCount": 0,
         "UserCount": "18",
         "AttLogsCount": "61",
         "OnlineStatus": null,
         "FirmwareVersion": "Ver 8.0.4.2-20180713",
         "LastSwipeDownloadedOn": "2024-02-05 10:04:42",
         "LastCommunicateToServer": "2024-02-07 15:03:59",
         "biomatric_for": "1",
         "branch": "1",
         "timezone": "87",
         "biomatric_grp": "1",
         "location": "2"
     },
}
 

Example response (400, Device Not Found):


{
    "status": false,
    "code": 400,
    "message": "Device Not Found"
}
 

Request   

GET api/v1/GetDevice/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the device. Example: 19

Delete Device

requires authentication

This endpoint is used to delete device from the system.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteDevice/10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteDevice/10"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Device):


{
    "status": true,
    "code": 200,
    "message": "Biometric Device Deleted Successfully."
}
 

Example response (400, Biometric Device Not Found):


{
    "status": false,
    "code": 400,
    "message": "Biometric Device Not Found."
}
 

Request   

DELETE api/v1/DeleteDevice/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the device. Example: 10

Get Device Logs

requires authentication

This endpoint is used to fetch all device logs from the database. Dates to be passed in Unix Timestamp.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/GetDeviceLogs" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json" \
    --data "{
    \"from_date\": \"1735689600\",
    \"to_date\": \"1737829713\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetDeviceLogs"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

let body = {
    "from_date": "1735689600",
    "to_date": "1737829713"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Get all Device Logs):


{
    "status": true,
    "code": 200,
    "data": [
        {
            "UserId": "100",
            "InsertDate": "2024-02-05 10:04:42",
            "PunchDateTime": "2024-02-05 10:04:38",
            "SwipeDirection": "0",
            "serial_number": "SERIALNOHERE",
            "AuthenticationMode": "1",
            "AttendanceMarkingType": "BM",
            "Remarks": "",
            "Lattitude": 24.2545,
            "Longitude": 21.5454,
            "distaneInKm": 20,
            "PermittedGeoLat": 24.2542,
            "PermittedGeoLong": 21.5452,
            "PermittedRadius": 50
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 3,
        "links": {
            "first": "https://app.timetaag.com/api/v1/GetDeviceLogs?page=1",
            "last": "https://app.timetaag.com/api/v1/GetDeviceLogs?page=3",
            "prev": null,
            "next": "https://app.timetaag.com/api/v1/GetDeviceLogs?page=2"
        },
        "path": "https://app.timetaag.com/api/v1/GetDeviceLogs",
        "per_page": 100,
        "to": 10,
        "total": 23
    },
    "message": "Device Logs Retrieved Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
       "from_date": [
           "validation.required"
       ],
       "to_date": [
           "validation.required"
       ],
    }
}
 

Request   

POST api/v1/GetDeviceLogs

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Body Parameters

from_date   string   

Example: 1735689600

to_date   string   

Example: 1737829713

Delete Uploaded Users

requires authentication

This endpoint is used to delete uploaded users from the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/DeleteUsers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json" \
    --data "{
    \"employee_codes\": \"1,2\",
    \"biometric_ids\": \"1,2\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteUsers"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

let body = {
    "employee_codes": "1,2",
    "biometric_ids": "1,2"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Delete Uploaded Users):


{
    "status": true,
    "code": 200,
    "data": [
        {
            "SerialNumber": "SERIALNOHERE",
            "BiometricTitle": "Delete User 100 > John Jacobs #100",
            "BiometricCommand": "DEL_USR",
            "CmdParmStr": "EID=100",
            "RecordedDate": "2024-03-04 16:54:44",
            "Status": "Pending",
            "updated_at": "2024-03-04T12:54:44.000000Z",
            "created_at": "2024-03-04T12:54:44.000000Z",
            "id": 396
        }
    ],
    "message": "Uploaded User Deleted Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
       "employee_codes": [
           "validation.required"
       ],
       "biometric_ids": [
           "validation.required"
       ],
    }
}
 

Request   

POST api/v1/DeleteUsers

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Body Parameters

employee_codes   string   

Example: 1,2

biometric_ids   string   

Example: 1,2

Add Device

requires authentication

This endpoint is used to add device to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddDevice" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"abbb\",
    \"code\": \"1811\",
    \"serial_number\": \"RK\",
    \"direction\": 1,
    \"biomatric_for\": 1,
    \"timezone\": 1,
    \"biomatric_grp\": 1,
    \"machine_id\": 1,
    \"location\": 1,
    \"master_biometric\": 1,
    \"email\": \"abc@gmail.com\",
    \"contact_no\": 9867763294,
    \"biomatric_type\": 1,
    \"ip_address\": \"12.987\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddDevice"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "name": "abbb",
    "code": "1811",
    "serial_number": "RK",
    "direction": 1,
    "biomatric_for": 1,
    "timezone": 1,
    "biomatric_grp": 1,
    "machine_id": 1,
    "location": 1,
    "master_biometric": 1,
    "email": "abc@gmail.com",
    "contact_no": 9867763294,
    "biomatric_type": 1,
    "ip_address": "12.987"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Device):


{
    "status": true,
    "code": 200,
    "data": {
        "name": "abbb",
        "code": "1811",
        "direction": "1",
        "serial_number": "RK",
        "ip_address": "124.40.245.189",
        "biomatric_for": "1",
        "branch": null,
        "timezone": "1",
        "biomatric_grp": "1",
        "machine_id": "1",
        "location": "1",
        "master_biometric": "1",
        "email": "apidemo@timetaag.com",
        "contact_no": "0123654789",
        "biomatric_type": "1",
        "updated_at": "2024-03-04T12:27:23.000000Z",
        "created_at": "2024-03-04T12:27:23.000000Z",
        "id": 11
    },
    "message": "Biometric Device Created Successfully."
}
 

Example response (400, Validation Error):


{
    "status": false,
    "code": 400,
    "message": "Validation Error.",
    "data": {
        "name": [
            "validation.required"
        ],
        "code": [
            "validation.unique"
        ],
        "serial_number": [
            "validation.unique"
        ]
    }
}
 

Request   

POST api/v1/AddDevice

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

name   string   

Example: abbb

code   string  optional  

unique Example: 1811

serial_number   string  optional  

unique Example: RK

direction   integer  optional  

Example: 1

biomatric_for   integer  optional  

Example: 1

timezone   integer  optional  

Example: 1

biomatric_grp   integer  optional  

Example: 1

machine_id   integer  optional  

Example: 1

location   integer  optional  

Example: 1

master_biometric   integer  optional  

Example: 1

email   string  optional  

Example: abc@gmail.com

contact_no   integer  optional  

Example: 9867763294

biomatric_type   integer  optional  

Example: 1

ip_address   string  optional  

Example: 12.987

Employees

APIs for managing Employees

Get Employees

requires authentication

This endpoint is used to get all employees from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetEmployees" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetEmployees"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Employees):


{
     "status": true,
     "code": 200,
     "message": "Employees Retrieved Successfully."
     "data": [
          {
             "id": 28,
             "emp_name": "Ishitha Prajapati",
             "photo": "https://app.timetaag.com/photos/no-user.jpg",
             "emp_code": "127",
             "emp_branch": "default",
             "gender": "2",
             "biomatric_code": "127",
             "birth_date": "2001-03-16",
             "joindate": "2019-08-01",
             "resigning_date": "2020-08-01",
             "leave_credit_date": "2020-08-01",
             "contact_no": "0123456789",
             "email": "ishitha@gmail.com",
             "address": "123",
             "login_name": null,
             "timezone": "1",
             "imei_number": "1",
             "allow_in_out": "1",
             "department": "General",
             "emp_type": "1",
             "team": "1",
             "shift_group": "1",
             "food_category": "1",
             "manager": "1",
             "holiday_group": 1,
             "designation": "Default",
             "location": "DefaultLoc",
             "attendance_setting": "Default",
             "work_status": "Working",
             "delete_status": 0,
             "blocked": 0,
             "last_login": null,
             "created_at": "2024-03-02T07:34:49.000000Z",
             "updated_at": "2024-03-02T07:34:49.000000Z",
             "desname": {
                 "id": 1,
                 "name": "Default",
                 "created_at": "2022-07-22T16:13:03.000000Z",
                 "updated_at": "2022-07-22T16:13:03.000000Z"
             },
             "branchname": {
                 "id": 1,
                 "name": "DefaultBranch",
                 "code": "b1",
                 "email": "defaultbranch@gmail.com",
                 "address": "default",
                 "created_at": "2022-11-17T11:29:01.000000Z",
                 "updated_at": "2022-11-17T11:29:01.000000Z"
             },
             "attset": {
                 "id": 1,
                 "AttSettingName": "Default",
                 "AttSettingCode": "Default",
                 "WeeklyOff1Day": "Friday",
                 "WeeklyOff1Occurence": "1,2,3,4,5",
                 "WeeklyOff2Day": "none",
                 "WeeklyOff2Occurence": "",
                 "HalfDayForLessDurationMin": 7,
                 "AbsentForLessDurationMin": 6,
                 "OTFormula": "shift_hour",
                 "MinimumOT": 10,
                 "MaximumOT": 600,
                 "GraceForLateComing": 0,
                 "GraceForEarlying": 0,
                 "MarkHalfDayWhenLateByMins": 0,
                 "MarkHalfDayWhenEarlyByMins": 0,
                 "IsConsiderFirstandLastPunch": null,
                 "IsValidateEarlyPunch": null,
                 "IsValidateLatePunch": null,
                 "IsDeductBreakDuration": null,
                 "SetSinglePunchStatusAs": "In Punch + 1 min",
                 "IsWOPHOPInOT": 1,
                 "IsAutoCompOff": null,
                 "HalfDayParForLessDurationMin": 7,
                 "AbsentParForLessDurationMin": 6,
                 "IsValPreSufAbsentOnWOHO": null,
                 "IsValSuffixAbsentOnWOHO": null,
                 "IsValPrefixAbsentOnWOHO": null,
                 "IsValLeaveForPrefixSuffix": null,
                 "HalfDayCoffForLessDurationMin": 0,
                 "NoCoffForLessDurationMin": 0,
                 "HalfDayCoffForLessOT": 0,
                 "NoCoffForLessOT": 0,
                 "ApplicableLeaves": "1",
                 "IsConsiderHAbsForContLate": null,
                 "MarkOrDeductDayLate": 0.5,
                 "WhenLateBy": 2,
                 "IsDeductLeaveForConLate": null,
                 "DeductLeaveType1Late": null,
                 "DeductLeaveType2Late": null,
                 "DeductLeaveType3Late": null,
                 "IsSameForEveryLate": null,
                 "IsConsiderHAbsConLateByMin": null,
                 "MarkOrDeductDayLateByMin": 0.5,
                 "WhenLateByMin": 0,
                 "IsDeductLeaveForConLateByMin": null,
                 "DeductLeaveType1LateByMin": null,
                 "DeductLeaveType2LateByMin": null,
                 "DeductLeaveType3LateByMin": null,
                 "IsConsiderHAbsForContEarly": null,
                 "MarkOrDeductDayEarly": 0.5,
                 "WhenEarlyBy": 2,
                 "IsDeductLeaveForConEarly": null,
                 "DeductLeaveType1Early": null,
                 "DeductLeaveType2Early": null,
                 "DeductLeaveType3Early": null,
                 "IsSameForEveryEarly": null,
                 "IsConsiderHAbsForContEarlyByMin": null,
                 "MarkOrDeductDayEarlyByMin": 0.5,
                 "WhenEarlyByMin": 0,
                 "IsDeductLeaveForConEarlyByMin": null,
                 "DeductLeaveType1EarlyByMin": null,
                 "DeductLeaveType2EarlyByMin": null,
                 "DeductLeaveType3EarlyByMin": null,
                 "ExcludedStatusForCon": "",
                 "ProductionBiometricIds": "",
                 "FlexiShiftId": 4,
                 "IsMarkLateEarlyAsPerMnth": null,
                 "DefaultOverTime": 1,
                 "DefaultMinWOHOOT": 0,
                 "IsNeglectLastInPunch": null,
                 "IsCheckTillLastOut": 1,
                 "IsOTNotApplicableOnOutStation": null,
                 "IsOTNotApplicableOnFlexiAndOpenShift": null,
                 "IsCheckForB24HrShift": 0,
                 "IsRoundOffOT": null,
                 "IsRoundDownOT": null,
                 "IsCheckMissPunchStatus": 1,
                 "WorkDurationFormula": 1,
                 "created_at": "2022-11-17T13:00:44.000000Z",
                 "updated_at": "2024-02-29T07:49:57.000000Z"
             },
             "locname": {
                 "id": 1,
                 "loc_name": "DefaultLoc",
                 "description": "Default Location",
                 "created_at": "2022-11-17T11:30:32.000000Z",
                 "updated_at": "2023-04-20T17:15:00.000000Z"
             },
             "workst": {
                 "id": 1,
                 "name": "Working",
                 "created_at": "2022-07-22T16:11:29.000000Z",
                 "updated_at": "2022-07-22T16:11:29.000000Z"
             },
             "dept": {
                 "id": 1,
                 "dept_name": "General",
                 "dept_code": "General",
                 "description": "General Department",
                 "created_at": "2022-11-17T11:29:44.000000Z",
                 "updated_at": "2022-11-17T11:29:44.000000Z"
             }
        }
     ],
     "meta": {
          "current_page": 1,
          "from": 1,
          "last_page": 3,
          "links": {
              "first": "https://app.timetaag.com/api/v1/GetEmployees?page=1",
              "last": "https://app.timetaag.com/api/v1/GetEmployees?page=3",
              "prev": null,
              "next": "https://app.timetaag.com/api/v1/GetEmployees?page=2"
          },
          "path": "https://app.timetaag.com/api/v1/GetEmployees",
          "per_page": 10,
          "to": 10,
          "total": 23
      }
}
 

Request   

GET api/v1/GetEmployees

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Employee

requires authentication

This endpoint is used to get single employee from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetEmployee/18" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetEmployee/18"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Employee):


{
     "status": true,
     "code": 200,
     "message": "Employee Retrieved Successfully.",
     "data": {
         "id": 2,
         "emp_name": "Anoop",
         "photo": "",
         "emp_code": "101",
         "emp_branch": 1,
         "gender": null,
         "biomatric_code": "101",
         "birth_date": null,
         "joindate": "2023-08-16",
         "resigning_date": "2100-01-01",
         "leave_credit_date": null,
         "contact_no": null,
         "email": null,
         "address": null,
         "login_name": null,
         "timezone": "1",
         "imei_number": null,
         "allow_in_out": null,
         "department": "3",
         "emp_type": "1",
         "team": "1",
         "shift_group": "1",
         "food_category": "1",
         "manager": "1",
         "holiday_group": 1,
         "designation": 1,
         "location": 1,
         "attendance_setting": 1,
         "work_status": 1,
         "delete_status": 0,
         "blocked": 0,
         "last_login": null,
         "created_at": "2023-08-16T05:11:16.000000Z",
         "updated_at": "2023-10-03T10:52:09.000000Z",
         "desname": {
            "id": 1,
            "name": "Default",
            "created_at": "2022-07-22T16:13:03.000000Z",
            "updated_at": "2022-07-22T16:13:03.000000Z"
         },
         "branchname": {
            "id": 1,
            "name": "DefaultBranch",
            "code": "b1",
            "email": "defaultbranch@gmail.com",
            "address": "default",
            "created_at": "2022-11-17T11:29:01.000000Z",
            "updated_at": "2022-11-17T11:29:01.000000Z"
         },
         "attset": {
              "id": 1,
              "AttSettingName": "Default",
              "AttSettingCode": "Default",
              "WeeklyOff1Day": "Friday",
              "WeeklyOff1Occurence": "1,2,3,4,5",
              "WeeklyOff2Day": "none",
              "WeeklyOff2Occurence": "",
              "HalfDayForLessDurationMin": 7,
              "AbsentForLessDurationMin": 6,
              "OTFormula": "shift_hour",
              "MinimumOT": 10,
              "MaximumOT": 600,
              "GraceForLateComing": 0,
              "GraceForEarlying": 0,
              "MarkHalfDayWhenLateByMins": 0,
              "MarkHalfDayWhenEarlyByMins": 0,
              "IsConsiderFirstandLastPunch": null,
              "IsValidateEarlyPunch": null,
              "IsValidateLatePunch": null,
              "IsDeductBreakDuration": null,
              "SetSinglePunchStatusAs": "In Punch + 1 min",
              "IsWOPHOPInOT": 1,
              "IsAutoCompOff": null,
              "HalfDayParForLessDurationMin": 7,
              "AbsentParForLessDurationMin": 6,
              "IsValPreSufAbsentOnWOHO": null,
              "IsValSuffixAbsentOnWOHO": null,
              "IsValPrefixAbsentOnWOHO": null,
              "IsValLeaveForPrefixSuffix": null,
              "HalfDayCoffForLessDurationMin": 0,
              "NoCoffForLessDurationMin": 0,
              "HalfDayCoffForLessOT": 0,
              "NoCoffForLessOT": 0,
              "ApplicableLeaves": "1",
              "IsConsiderHAbsForContLate": null,
              "MarkOrDeductDayLate": 0.5,
              "WhenLateBy": 2,
              "IsDeductLeaveForConLate": null,
              "DeductLeaveType1Late": null,
              "DeductLeaveType2Late": null,
              "DeductLeaveType3Late": null,
              "IsSameForEveryLate": null,
              "IsConsiderHAbsConLateByMin": null,
              "MarkOrDeductDayLateByMin": 0.5,
              "WhenLateByMin": 0,
              "IsDeductLeaveForConLateByMin": null,
              "DeductLeaveType1LateByMin": null,
              "DeductLeaveType2LateByMin": null,
              "DeductLeaveType3LateByMin": null,
              "IsConsiderHAbsForContEarly": null,
              "MarkOrDeductDayEarly": 0.5,
              "WhenEarlyBy": 2,
              "IsDeductLeaveForConEarly": null,
              "DeductLeaveType1Early": null,
              "DeductLeaveType2Early": null,
              "DeductLeaveType3Early": null,
              "IsSameForEveryEarly": null,
              "IsConsiderHAbsForContEarlyByMin": null,
              "MarkOrDeductDayEarlyByMin": 0.5,
              "WhenEarlyByMin": 0,
              "IsDeductLeaveForConEarlyByMin": null,
              "DeductLeaveType1EarlyByMin": null,
              "DeductLeaveType2EarlyByMin": null,
              "DeductLeaveType3EarlyByMin": null,
              "ExcludedStatusForCon": "",
              "ProductionBiometricIds": "",
              "FlexiShiftId": 4,
              "IsMarkLateEarlyAsPerMnth": null,
              "DefaultOverTime": 1,
              "DefaultMinWOHOOT": 0,
              "IsNeglectLastInPunch": null,
              "IsCheckTillLastOut": 1,
              "IsOTNotApplicableOnOutStation": null,
              "IsOTNotApplicableOnFlexiAndOpenShift": null,
              "IsCheckForB24HrShift": 0,
              "IsRoundOffOT": null,
              "IsRoundDownOT": null,
              "IsCheckMissPunchStatus": 1,
              "WorkDurationFormula": 1,
              "created_at": "2022-11-17T13:00:44.000000Z",
              "updated_at": "2024-02-29T07:49:57.000000Z"
         },
        "locname": {
             "id": 1,
             "loc_name": "DefaultLoc",
             "description": "Default Location",
             "created_at": "2022-11-17T11:30:32.000000Z",
             "updated_at": "2023-04-20T17:15:00.000000Z"
        },
        "workst": {
             "id": 1,
             "name": "Working",
             "created_at": "2022-07-22T16:11:29.000000Z",
             "updated_at": "2022-07-22T16:11:29.000000Z"
        }
    },
}
 

Example response (400, Employee Not Found):


{
    "status": false,
    "code": 400,
    "message": "Employee Not Found"
}
 

Request   

GET api/v1/GetEmployee/{employee_code}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

employee_code   integer   

The EMPLOYEE CODE of the employee. Example: 18

Delete Employee

requires authentication

This endpoint is used to delete employee from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteEmployee/4" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteEmployee/4"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Employee):


{
    "status": true,
    "code": 200,
    "message": "Employee Deleted Successfully."
}
 

Example response (400, Employee Not Found):


{
    "status": false,
    "code": 400,
    "message": "Employee Not Found"
}
 

Request   

DELETE api/v1/DeleteEmployee/{employee_code}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

employee_code   integer   

The EMPLOYEE CODE of the employee. Example: 4

Add Employee

requires authentication

This endpoint is used to add employee to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddEmployee" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"emp_code\": 128,
    \"emp_name\": \"AAAAAAA\",
    \"biomatric_code\": 128,
    \"base64image\": \"image.png\",
    \"emp_branch\": 1,
    \"designation\": 1,
    \"location\": 1,
    \"attendance_setting\": 1,
    \"work_status\": 1,
    \"gender\": 1,
    \"birth_date\": \"2024-01-01\",
    \"joindate\": \"2024-01-01\",
    \"resigning_date\": \"2024-01-01\",
    \"leave_credit_date\": \"2024-01-01\",
    \"contact_no\": \"258963214\",
    \"email\": \"abc@gmail.com\",
    \"address\": \"465768 abc\",
    \"login_name\": \"abc\",
    \"password\": \"123654789\",
    \"timezone\": 1,
    \"imei_number\": 1,
    \"allow_in_out\": 1,
    \"department\": 1,
    \"emp_type\": 1,
    \"team\": 1,
    \"shift_group\": 1,
    \"food_category\": 1,
    \"manager\": 1,
    \"holiday_group\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddEmployee"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "emp_code": 128,
    "emp_name": "AAAAAAA",
    "biomatric_code": 128,
    "base64image": "image.png",
    "emp_branch": 1,
    "designation": 1,
    "location": 1,
    "attendance_setting": 1,
    "work_status": 1,
    "gender": 1,
    "birth_date": "2024-01-01",
    "joindate": "2024-01-01",
    "resigning_date": "2024-01-01",
    "leave_credit_date": "2024-01-01",
    "contact_no": "258963214",
    "email": "abc@gmail.com",
    "address": "465768 abc",
    "login_name": "abc",
    "password": "123654789",
    "timezone": 1,
    "imei_number": 1,
    "allow_in_out": 1,
    "department": 1,
    "emp_type": 1,
    "team": 1,
    "shift_group": 1,
    "food_category": 1,
    "manager": 1,
    "holiday_group": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Employee):


{
    "status": true,
    "code": 200,
    "data": {
        "photo": "https://app.timetaag.com/photos/no-user.jpg",
        "emp_name": "",
        "emp_code": "128",
        "emp_branch": "1",
        "designation": "1",
        "location": "1",
        "attendance_setting": "1",
        "work_status": "1",
        "gender": "2",
        "biomatric_code": "128",
        "birth_date": "2001-03-16",
        "joindate": "2019-08-01",
        "resigning_date": "2020-08-01",
        "leave_credit_date": "2020-08-01",
        "contact_no": "0123456789",
        "email": "ishitha@gmail.com",
        "address": "123",
        "login_name": null,
        "password": "$2y$10$DmLZAsmjh0pEqWCjo7xsG.qPRLpKTZPUx0TeB4hJvu6265yfdT4pe",
        "timezone": "1",
        "imei_number": "1",
        "allow_in_out": "1",
        "department": "1",
        "emp_type": "1",
        "team": "1",
        "shift_group": "1",
        "food_category": "1",
        "manager": "1",
        "holiday_group": "1",
        "updated_at": "2024-03-04T11:54:26.000000Z",
        "created_at": "2024-03-04T11:54:26.000000Z",
        "id": 29
    },
    "message": "Employee Created Successfully.."
}
 

Example response (400, Validation Error):


{
    "status": false,
    "code": 400,
    "message": "Validation Error.",
    "data": {
        "emp_code": [
            "validation.required"
        ],
        "emp_name": [
            "validation.required"
        ],
        "biomatric_code": [
            "validation.required"
        ]
    }
}
 

Request   

POST api/v1/AddEmployee

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

emp_code   integer   

Example: 128

emp_name   string   

unique Example: AAAAAAA

biomatric_code   integer   

unique Example: 128

base64image   string  optional  

Example: image.png

emp_branch   integer  optional  

Example: 1

designation   integer  optional  

Example: 1

location   integer  optional  

Example: 1

attendance_setting   integer  optional  

Example: 1

work_status   integer  optional  

Example: 1

gender   integer  optional  

Example: 1

birth_date   string  optional  

Example: 2024-01-01

joindate   string  optional  

Example: 2024-01-01

resigning_date   string  optional  

Example: 2024-01-01

leave_credit_date   string  optional  

Example: 2024-01-01

contact_no   string  optional  

Example: 258963214

email   string  optional  

Example: abc@gmail.com

address   string  optional  

Example: 465768 abc

login_name   string  optional  

Example: abc

password   string  optional  

Example: 123654789

timezone   integer  optional  

Example: 1

imei_number   integer  optional  

Example: 1

allow_in_out   integer  optional  

Example: 1

department   integer  optional  

Example: 1

emp_type   integer  optional  

Example: 1

team   integer  optional  

Example: 1

shift_group   integer  optional  

Example: 1

food_category   integer  optional  

Example: 1

manager   integer  optional  

Example: 1

holiday_group   integer  optional  

Example: 1

Update Employee

requires authentication

This endpoint is used to update employee to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateEmployee/6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"emp_name\": \"AAAAAAA\",
    \"emp_code\": 128,
    \"biomatric_code\": 128,
    \"base64image\": \"image.png\",
    \"emp_branch\": 1,
    \"designation\": 1,
    \"location\": 1,
    \"attendance_setting\": 1,
    \"work_status\": 1,
    \"gender\": 1,
    \"birth_date\": \"2024-01-01\",
    \"joindate\": \"2024-01-01\",
    \"resigning_date\": \"2024-01-01\",
    \"leave_credit_date\": \"2024-01-01\",
    \"contact_no\": \"258963214\",
    \"email\": \"abc@gmail.com\",
    \"address\": \"465768 abc\",
    \"login_name\": \"abc\",
    \"password\": \"123654789\",
    \"timezone\": 1,
    \"imei_number\": 1,
    \"allow_in_out\": 1,
    \"department\": 1,
    \"emp_type\": 1,
    \"team\": 1,
    \"shift_group\": 1,
    \"food_category\": 1,
    \"manager\": 1,
    \"holiday_group\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateEmployee/6"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "emp_name": "AAAAAAA",
    "emp_code": 128,
    "biomatric_code": 128,
    "base64image": "image.png",
    "emp_branch": 1,
    "designation": 1,
    "location": 1,
    "attendance_setting": 1,
    "work_status": 1,
    "gender": 1,
    "birth_date": "2024-01-01",
    "joindate": "2024-01-01",
    "resigning_date": "2024-01-01",
    "leave_credit_date": "2024-01-01",
    "contact_no": "258963214",
    "email": "abc@gmail.com",
    "address": "465768 abc",
    "login_name": "abc",
    "password": "123654789",
    "timezone": 1,
    "imei_number": 1,
    "allow_in_out": 1,
    "department": 1,
    "emp_type": 1,
    "team": 1,
    "shift_group": 1,
    "food_category": 1,
    "manager": 1,
    "holiday_group": 1
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Employee):


{
    "status": true,
    "code": 200,
    "data": {
        "photo": "https://app.timetaag.com/photos/no-user.jpg",
        "emp_name": "AAAAAAA",
        "emp_code": "128",
        "emp_branch": "1",
        "designation": "1",
        "location": "1",
        "attendance_setting": "1",
        "work_status": "1",
        "gender": "2",
        "biomatric_code": "128",
        "birth_date": "2001-03-16",
        "joindate": "2019-08-01",
        "resigning_date": "2020-08-01",
        "leave_credit_date": "2020-08-01",
        "contact_no": "0123456789",
        "email": "ishitha@gmail.com",
        "address": "123",
        "login_name": null,
        "password": "$2y$10$DmLZAsmjh0pEqWCjo7xsG.qPRLpKTZPUx0TeB4hJvu6265yfdT4pe",
        "timezone": "1",
        "imei_number": "1",
        "allow_in_out": "1",
        "department": "1",
        "emp_type": "1",
        "team": "1",
        "shift_group": "1",
        "food_category": "1",
        "manager": "1",
        "holiday_group": "1",
        "updated_at": "2024-03-04T11:54:26.000000Z",
        "created_at": "2024-03-04T11:54:26.000000Z",
        "id": 29
    },
    "message": "Employee Updated Successfully."
}
 

Example response (400, Employee Not Found):


{
    "status": false,
    "code": 400,
    "message": "Employee Not Found"
}
 

Request   

PATCH api/v1/UpdateEmployee/{employee_code}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

employee_code   integer   

The EMPLOYEE CODE of the employee. Example: 6

Body Parameters

emp_name   string   

unique Example: AAAAAAA

emp_code   integer   

Example: 128

biomatric_code   integer   

unique Example: 128

base64image   string  optional  

Example: image.png

emp_branch   integer  optional  

Example: 1

designation   integer  optional  

Example: 1

location   integer  optional  

Example: 1

attendance_setting   integer  optional  

Example: 1

work_status   integer  optional  

Example: 1

gender   integer  optional  

Example: 1

birth_date   string  optional  

Example: 2024-01-01

joindate   string  optional  

Example: 2024-01-01

resigning_date   string  optional  

Example: 2024-01-01

leave_credit_date   string  optional  

Example: 2024-01-01

contact_no   string  optional  

Example: 258963214

email   string  optional  

Example: abc@gmail.com

address   string  optional  

Example: 465768 abc

login_name   string  optional  

Example: abc

password   string  optional  

Example: 123654789

timezone   integer  optional  

Example: 1

imei_number   integer  optional  

Example: 1

allow_in_out   integer  optional  

Example: 1

department   integer  optional  

Example: 1

emp_type   integer  optional  

Example: 1

team   integer  optional  

Example: 1

shift_group   integer  optional  

Example: 1

food_category   integer  optional  

Example: 1

manager   integer  optional  

Example: 1

holiday_group   integer  optional  

Example: 1

Employees Leaves

APIs for managing Employees Leaves

Get Employee Leaves

requires authentication

This endpoint is used to fetch all employee leaves available in the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/GetEmpLeaves" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json" \
    --data "{
    \"month\": 1,
    \"year\": 2024
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetEmpLeaves"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

let body = {
    "month": 1,
    "year": 2024
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Get all Leaves):


{
     "status": true,
     "code": 200,
     "message": "Leaves Retrieved Successfully.",
     "data": [
        {
            "StaffLeaveEntryId": 10,
            "LeaveTypeId": 2,
            "LeaveStatus": "Full Day",
            "StaffId": "120",
            "LeaveFromDate": "2024-03-01",
            "LeaveToDate": "2024-03-10",
            "IsApproved": 0,
            "ApprovedBy": null,
            "AppliedDate": null,
            "Remarks": null,
            "TotalDays": "10",
            "ApproveDeclineOn": null,
            "ManagerRemarks": null,
            "LV1IsApproved": null,
            "LV2IsApproved": null,
            "LV3IsApproved": null,
            "LV4IsApproved": null,
            "LV5IsApproved": null,
            "LV1ManagerRemarks": null,
            "LV2ManagerRemarks": null,
            "LV3ManagerRemarks": null,
            "LV4ManagerRemarks": null,
            "LV5ManagerRemarks": null,
            "LV1ApproveDeclineOn": null,
            "LV2ApproveDeclineOn": null,
            "LV3ApproveDeclineOn": null,
            "LV4ApproveDeclineOn": null,
            "LV5ApproveDeclineOn": null,
            "DocumentName": null,
            "AppliedBy": null,
            "is_delete": 0,
            "created_at": "2022-11-17T12:08:27.000000Z",
            "updated_at": "2022-11-19T11:08:56.000000Z",
            "id": 19,
            "emp_name": "CJ Talib",
            "photo": null,
            "emp_code": "120",
            "emp_branch": 1,
            "gender": "1",
            "biomatric_code": "120",
            "birth_date": "1990-01-01",
            "joindate": "2020-01-01",
            "resigning_date": "3000-01-01",
            "leave_credit_date": null,
            "contact_no": null,
            "email": null,
            "address": null,
            "login_name": null,
            "password": null,
            "timezone": null,
            "imei_number": null,
            "allow_in_out": null,
            "department": "3",
            "emp_type": "1",
            "team": "1",
            "shift_group": "1",
            "food_category": null,
            "manager": null,
            "holiday_group": null,
            "designation": 1,
            "location": 1,
            "attendance_setting": 1,
            "work_status": 1,
            "delete_status": 0,
            "blocked": 0,
            "last_login": null,
            "LeaveTypeName": "Casual Leave",
            "LeaveTypeCode": "CL",
            "Gender": "All",
            "CreditBalance": null,
            "Description": "Casual Leave (CL) is a type of leave that an employee is entitled to take for a short duration",
            "IsNegativeBalance": "0",
            "AllotmentType": "Monthly",
            "StartCreditFrom": null,
            "IsLossOfPay": "0",
            "ApplicableLeaveStatus": "full_day",
            "MaxTakeLPMonth": null,
            "MaxTakeLAtOnce": null,
            "MinDGapBTwoLeave": null,
            "MaxTakeLPYear": null,
            "MaxNegativeBalance": null,
            "IsProrated": "0",
            "GraceApplyPeriod": null,
            "GracePShiftApplicable": "1"
        },
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 3,
        "links": {
            "first": "https://app.timetaag.com/api/v1/GetEmpLeaves?page=1",
            "last": "https://app.timetaag.com/api/v1/GetEmpLeaves?page=3",
            "prev": null,
            "next": "https://app.timetaag.com/api/v1/GetEmpLeaves?page=2"
        },
        "path": "https://app.timetaag.com/api/v1/GetEmpLeaves",
        "per_page": 10,
        "to": 10,
        "total": 23
     }
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "month": [
          "validation.required"
        ],
        "year": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/GetEmpLeaves

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Body Parameters

month   integer   

Example: 1

year   integer   

Example: 2024

Get Single Employee Leave

requires authentication

This endpoint is used to get single employee leave from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetEmpLeave/15" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetEmpLeave/15"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Employee Leave):


{
    "status": true,
    "code": 200,
    "data": {
        "StaffLeaveEntryId": 12,
        "LeaveTypeId": "1",
        "LeaveStatus": "Full Day",
        "StaffId": "128",
        "LeaveFromDate": "2024-03-01",
        "LeaveToDate": "2024-03-06",
        "IsApproved": 1,
        "ApprovedBy": null,
        "AppliedDate": null,
        "Remarks": "test remark",
        "TotalDays": "6",
        "ApproveDeclineOn": null,
        "ManagerRemarks": null,
        "LV1IsApproved": null,
        "LV2IsApproved": null,
        "LV3IsApproved": null,
        "LV4IsApproved": null,
        "LV5IsApproved": null,
        "LV1ManagerRemarks": null,
        "LV2ManagerRemarks": null,
        "LV3ManagerRemarks": null,
        "LV4ManagerRemarks": null,
        "LV5ManagerRemarks": null,
        "LV1ApproveDeclineOn": null,
        "LV2ApproveDeclineOn": null,
        "LV3ApproveDeclineOn": null,
        "LV4ApproveDeclineOn": null,
        "LV5ApproveDeclineOn": null,
        "DocumentName": null,
        "AppliedBy": null,
        "is_delete": 0,
        "created_at": "2024-03-05T06:42:24.000000Z",
        "updated_at": "2024-03-05T06:50:50.000000Z"
    },
    "message": "Employee Leave Retrieved Successfully."
}
 

Example response (400, Employee Leave Not Found):


{
    "status": false,
    "code": 400,
    "message": "Employee Leave Not Found."
}
 

Request   

GET api/v1/GetEmpLeave/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the leave. Example: 15

Delete Employee Leave

requires authentication

This endpoint is used to delete employee leave to the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteEmpLeaves/8" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteEmpLeaves/8"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Update a Leave):


{
    "status": true,
    "code": 200,
    "message": "Employee Leave Deleted Successfully."
}
 

Example response (400, Employee Leave Not Found):


{
    "status": false,
    "code": 400,
    "message": "Employee Leave Not Found."
}
 

Request   

DELETE api/v1/DeleteEmpLeaves/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the leave. Example: 8

Add Employee Leave

requires authentication

This endpoint is used to add employee to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddEmpLeaves" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"employee_code\": \"1,2\",
    \"from_date\": \"2024-01-01\",
    \"to_date\": \"2024-01-01\",
    \"leave_type\": 1,
    \"leave_status\": \"Full Day\",
    \"remarks\": \"your remarks...\",
    \"approve\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddEmpLeaves"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "employee_code": "1,2",
    "from_date": "2024-01-01",
    "to_date": "2024-01-01",
    "leave_type": 1,
    "leave_status": "Full Day",
    "remarks": "your remarks...",
    "approve": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Leave):


{
    "status": true,
    "code": 200,
    "data": [
        {
            "StaffId": "128",
            "LeaveTypeId": "1",
            "LeaveStatus": "Full Day",
            "LeaveFromDate": "2024-03-01",
            "LeaveToDate": "2024-03-05",
            "IsApproved": "1",
            "Remarks": "test",
            "TotalDays": 5,
            "updated_at": "2024-03-05T06:42:24.000000Z",
            "created_at": "2024-03-05T06:42:24.000000Z",
            "id": 12
        }
    ],
    "message": "Employee Leave assigned Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "employee_code": [
          "validation.required"
        ],
        "from_date": [
          "validation.required"
        ],
        "to_date": [
          "validation.required"
        ],
       "leave_type": [
          "validation.required"
        ],
      "leave_status": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddEmpLeaves

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

employee_code   string   

Example: 1,2

from_date   string   

Example: 2024-01-01

to_date   string   

Example: 2024-01-01

leave_type   integer   

Example: 1

leave_status   string   

Example: Full Day

remarks   string  optional  

Example: your remarks...

approve   integer  optional  

Example: 1

Update Employee Leave

requires authentication

This endpoint is used to update employee leave to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateEmpLeaves/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"employee_code\": \"1,2\",
    \"from_date\": \"2024-01-01\",
    \"to_date\": \"2024-01-01\",
    \"leave_type\": 1,
    \"leave_status\": \"Full Day\",
    \"remarks\": \"your remarks...\",
    \"approve\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateEmpLeaves/5"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "employee_code": "1,2",
    "from_date": "2024-01-01",
    "to_date": "2024-01-01",
    "leave_type": 1,
    "leave_status": "Full Day",
    "remarks": "your remarks...",
    "approve": 1
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Leave):


{
    "status": true,
    "code": 200,
    "data": {
        "StaffLeaveEntryId": 12,
        "LeaveTypeId": "1",
        "LeaveStatus": "Full Day",
        "StaffId": "128",
        "LeaveFromDate": "2024-03-01",
        "LeaveToDate": "2024-03-06",
        "IsApproved": 1,
        "ApprovedBy": null,
        "AppliedDate": null,
        "Remarks": "test remark",
        "TotalDays": "6",
        "ApproveDeclineOn": null,
        "ManagerRemarks": null,
        "LV1IsApproved": null,
        "LV2IsApproved": null,
        "LV3IsApproved": null,
        "LV4IsApproved": null,
        "LV5IsApproved": null,
        "LV1ManagerRemarks": null,
        "LV2ManagerRemarks": null,
        "LV3ManagerRemarks": null,
        "LV4ManagerRemarks": null,
        "LV5ManagerRemarks": null,
        "LV1ApproveDeclineOn": null,
        "LV2ApproveDeclineOn": null,
        "LV3ApproveDeclineOn": null,
        "LV4ApproveDeclineOn": null,
        "LV5ApproveDeclineOn": null,
        "DocumentName": null,
        "AppliedBy": null,
        "is_delete": 0,
        "created_at": "2024-03-05T06:42:24.000000Z",
        "updated_at": "2024-03-05T06:50:50.000000Z"
    },
    "message": "Employee Leave Updated Successfully."
}
 

Example response (400, Employee Leave Not Found):


{
    "status": false,
    "code": 400,
    "message": "Employee Leave Not Found."
}
 

Request   

PATCH api/v1/UpdateEmpLeaves/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the leave. Example: 5

Body Parameters

employee_code   string   

Example: 1,2

from_date   string   

Example: 2024-01-01

to_date   string   

Example: 2024-01-01

leave_type   integer   

Example: 1

leave_status   string   

Example: Full Day

remarks   string  optional  

Example: your remarks...

approve   integer  optional  

Example: 1

Employees Outdoors

APIs for managing Employees Outdoors

Get Employee Outdoors

requires authentication

This endpoint is used to fetch all employee outdoor entries available in the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/GetEmpOutdoors" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json" \
    --data "{
    \"month\": 1,
    \"year\": 2024
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetEmpOutdoors"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

let body = {
    "month": 1,
    "year": 2024
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Get all outdoor entries):


{
     "status": true,
     "code": 200,
     "message": "Outdoor Entries Retrieved Successfully.",
     "data": [
        {
            "StaffOutDoorEntryId": 2,
            "StaffId": "120",
            "OutDoorType": "2",
            "StartDateTime": "2024-03-01 15:15:00",
            "EndDateTime": "2024-03-05 16:15:00",
            "TotalDays": "5",
            "AppliedDate": null,
            "Remarks": null,
            "IsApproved": 0,
            "ApprovedBy": null,
            "ApproveDeclineOn": null,
            "ManagerRemarks": null,
            "LV1IsApproved": null,
            "LV2IsApproved": null,
            "LV3IsApproved": null,
            "LV4IsApproved": null,
            "LV5IsApproved": null,
            "LV1ManagerRemarks": null,
            "LV2ManagerRemarks": null,
            "LV3ManagerRemarks": null,
            "LV4ManagerRemarks": null,
            "LV5ManagerRemarks": null,
            "LV1ApproveDeclineOn": null,
            "LV2ApproveDeclineOn": null,
            "LV3ApproveDeclineOn": null,
            "LV4ApproveDeclineOn": null,
            "LV5ApproveDeclineOn": null,
            "ClientId": null,
            "TaskStartLattitude": null,
            "TaskStartLongitude": null,
            "TaskStartLocation": "",
            "TaskEndLattitude": null,
            "TaskEndLongitude": null,
            "TaskEndLocation": null,
            "TaskTitle": null,
            "TaskStatus": null,
            "TaskCategoryId": null,
            "IsNextDayEntry": null,
            "AppliedBy": null,
            "is_delete": 0,
            "created_at": "2023-08-23T17:01:41.000000Z",
            "updated_at": "2023-10-03T10:52:09.000000Z",
            "id": 19,
            "emp_name": "CJ Talib",
            "photo": null,
            "emp_code": "120",
            "emp_branch": 1,
            "gender": "1",
            "biomatric_code": "120",
            "birth_date": "1990-01-01",
            "joindate": "2020-01-01",
            "resigning_date": "3000-01-01",
            "leave_credit_date": null,
            "contact_no": null,
            "email": null,
            "address": null,
            "login_name": null,
            "password": null,
            "timezone": null,
            "imei_number": null,
            "allow_in_out": null,
            "department": "3",
            "emp_type": "1",
            "team": "1",
            "shift_group": "1",
            "food_category": null,
            "manager": null,
            "holiday_group": null,
            "designation": 1,
            "location": 1,
            "attendance_setting": 1,
            "work_status": 1,
            "delete_status": 0,
            "blocked": 0,
            "last_login": null
        },
    ],
    "meta": {
       "current_page": 1,
       "from": 1,
       "last_page": 3,
       "links": {
           "first": "https://app.timetaag.com/api/v1/GetEmpOutdoors?page=1",
           "last": "https://app.timetaag.com/api/v1/GetEmpOutdoors?page=3",
           "prev": null,
           "next": "https://app.timetaag.com/api/v1/GetEmpOutdoors?page=2"
       },
       "path": "https://app.timetaag.com/api/v1/GetEmpOutdoors",
       "per_page": 10,
       "to": 10,
       "total": 23
   },
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "month": [
          "validation.required"
        ],
        "year": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/GetEmpOutdoors

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Body Parameters

month   integer   

Example: 1

year   integer   

Example: 2024

Get Single Employee Outdoor

requires authentication

This endpoint is used to get employee outdoor entry from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetEmpOutdoor/20" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetEmpOutdoor/20"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Employee Outdoor):


{
    "status": true,
    "code": 200,
    "data": {
        "StaffOutDoorEntryId": 4,
        "StaffId": "128",
        "OutDoorType": "2",
        "StartDateTime": "2024-03-01 15:15:00",
        "EndDateTime": "2024-03-05 16:15:00",
        "TotalDays": "2",
        "AppliedDate": null,
        "Remarks": "test",
        "IsApproved": 1,
        "ApprovedBy": null,
        "ApproveDeclineOn": null,
        "ManagerRemarks": null,
        "LV1IsApproved": null,
        "LV2IsApproved": null,
        "LV3IsApproved": null,
        "LV4IsApproved": null,
        "LV5IsApproved": null,
        "LV1ManagerRemarks": null,
        "LV2ManagerRemarks": null,
        "LV3ManagerRemarks": null,
        "LV4ManagerRemarks": null,
        "LV5ManagerRemarks": null,
        "LV1ApproveDeclineOn": null,
        "LV2ApproveDeclineOn": null,
        "LV3ApproveDeclineOn": null,
        "LV4ApproveDeclineOn": null,
        "LV5ApproveDeclineOn": null,
        "ClientId": null,
        "TaskStartLattitude": null,
        "TaskStartLongitude": null,
        "TaskStartLocation": "",
        "TaskEndLattitude": null,
        "TaskEndLongitude": null,
        "TaskEndLocation": null,
        "TaskTitle": null,
        "TaskStatus": null,
        "TaskCategoryId": null,
        "IsNextDayEntry": null,
        "AppliedBy": null,
        "is_delete": 0,
        "created_at": "2024-03-05T07:09:00.000000Z",
        "updated_at": "2024-03-05T07:11:35.000000Z"
    },
    "message": "Outdoor Entry Retrieved Successfully."
}
 

Example response (400, Outdoor Entry Not Found):


{
    "status": false,
    "code": 400,
    "message": "Outdoor Entry Not Found."
}
 

Request   

GET api/v1/GetEmpOutdoor/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the outdoor entry. Example: 20

Delete Employee Outdoor

requires authentication

This endpoint is used to delete employee outdoor entry from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteEmpOutdoors/10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteEmpOutdoors/10"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete Outdoor entry):


{
    "status": true,
    "code": 200,
    "message": "Outdoor Entry Updated Successfully."
}
 

Example response (400, Outdoor Entry Not Found):


{
    "status": false,
    "code": 400,
    "message": "Outdoor Entry Not Found."
}
 

Request   

DELETE api/v1/DeleteEmpOutdoors/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the outdoor entry. Example: 10

Add Employee Outdoor

requires authentication

This endpoint is used to add employee outdoor entry to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddEmpOutdoors" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"employee_code\": \"1,2\",
    \"from_date\": \"2024-01-01\",
    \"to_date\": \"2024-01-01\",
    \"start_time\": \"3:15 PM\",
    \"end_time\": \"3:15 PM\",
    \"out_type\": 1,
    \"remarks\": \"test\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddEmpOutdoors"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "employee_code": "1,2",
    "from_date": "2024-01-01",
    "to_date": "2024-01-01",
    "start_time": "3:15 PM",
    "end_time": "3:15 PM",
    "out_type": 1,
    "remarks": "test"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Outdoor entry):


{
    "status": true,
    "code": 200,
    "data": [
        {
            "StaffId": "128",
            "OutDoorType": "2",
            "StartDateTime": "2024-03-05 15:15:00",
            "EndDateTime": "2024-03-06 16:15:00",
            "IsApproved": "0",
            "Remarks": null,
            "TotalDays": 2,
            "updated_at": "2024-03-05T07:09:00.000000Z",
            "created_at": "2024-03-05T07:09:00.000000Z",
            "id": 4
        }
    ],
    "message": "Employee Outdoor assigned Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "employee_code": [
          "validation.required"
        ],
        "from_date": [
          "validation.required"
        ],
        "to_date": [
          "validation.required"
        ],
       "start_time": [
          "validation.required"
        ],
      "end_time": [
          "validation.required"
        ],
      "out_type": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddEmpOutdoors

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

employee_code   string   

Example: 1,2

from_date   string   

Example: 2024-01-01

to_date   string   

Example: 2024-01-01

start_time   string   

Example: 3:15 PM

end_time   string   

Example: 3:15 PM

out_type   integer   

Example: 1

remarks   string   

Example: test

Update Employee Outdoor

requires authentication

This endpoint is used to update employee outdoor entry to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateEmpOutdoors/14" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"employee_code\": \"1,2\",
    \"from_date\": \"2024-01-01\",
    \"to_date\": \"2024-01-01\",
    \"start_time\": \"3:15 PM\",
    \"end_time\": \"3:15 PM\",
    \"out_type\": 1,
    \"remarks\": \"test\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateEmpOutdoors/14"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "employee_code": "1,2",
    "from_date": "2024-01-01",
    "to_date": "2024-01-01",
    "start_time": "3:15 PM",
    "end_time": "3:15 PM",
    "out_type": 1,
    "remarks": "test"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update Outdoor entry):


{
    "status": true,
    "code": 200,
    "data": {
        "StaffOutDoorEntryId": 4,
        "StaffId": "128",
        "OutDoorType": "2",
        "StartDateTime": "2024-03-01 15:15:00",
        "EndDateTime": "2024-03-05 16:15:00",
        "TotalDays": "2",
        "AppliedDate": null,
        "Remarks": "test",
        "IsApproved": 1,
        "ApprovedBy": null,
        "ApproveDeclineOn": null,
        "ManagerRemarks": null,
        "LV1IsApproved": null,
        "LV2IsApproved": null,
        "LV3IsApproved": null,
        "LV4IsApproved": null,
        "LV5IsApproved": null,
        "LV1ManagerRemarks": null,
        "LV2ManagerRemarks": null,
        "LV3ManagerRemarks": null,
        "LV4ManagerRemarks": null,
        "LV5ManagerRemarks": null,
        "LV1ApproveDeclineOn": null,
        "LV2ApproveDeclineOn": null,
        "LV3ApproveDeclineOn": null,
        "LV4ApproveDeclineOn": null,
        "LV5ApproveDeclineOn": null,
        "ClientId": null,
        "TaskStartLattitude": null,
        "TaskStartLongitude": null,
        "TaskStartLocation": "",
        "TaskEndLattitude": null,
        "TaskEndLongitude": null,
        "TaskEndLocation": null,
        "TaskTitle": null,
        "TaskStatus": null,
        "TaskCategoryId": null,
        "IsNextDayEntry": null,
        "AppliedBy": null,
        "is_delete": 0,
        "created_at": "2024-03-05T07:09:00.000000Z",
        "updated_at": "2024-03-05T07:11:35.000000Z"
    },
    "message": "Outdoor Entry Updated Successfully."
}
 

Example response (400, Outdoor Entry Not Found):


{
    "status": false,
    "code": 400,
    "message": "Outdoor Entry Not Found."
}
 

Request   

PATCH api/v1/UpdateEmpOutdoors/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the outdoor entry. Example: 14

Body Parameters

employee_code   string   

Example: 1,2

from_date   string   

Example: 2024-01-01

to_date   string   

Example: 2024-01-01

start_time   string   

Example: 3:15 PM

end_time   string   

Example: 3:15 PM

out_type   integer   

Example: 1

remarks   string   

Example: test

Reports

APIs for managing Reports

Get Daily Reports

requires authentication

This endpoint is used to fetch daily reports available in the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/GetProcessData" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"fdate\": \"2024-01-01\",
    \"tdate\": \"2024-03-01\",
    \"calculate\": 0,
    \"report\": \"basic\",
    \"group1\": 0,
    \"group2\": \"LocationId\",
    \"sort_column\": 0,
    \"client_db_name\": \"tt_10000\",
    \"emp_code\": 1,
    \"emp_ids\": \"1,2\",
    \"designation\": 1,
    \"location\": 1,
    \"att_set\": 1,
    \"department\": 1,
    \"branch\": 1,
    \"page\": 1,
    \"per_page\": 10
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetProcessData"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "fdate": "2024-01-01",
    "tdate": "2024-03-01",
    "calculate": 0,
    "report": "basic",
    "group1": 0,
    "group2": "LocationId",
    "sort_column": 0,
    "client_db_name": "tt_10000",
    "emp_code": 1,
    "emp_ids": "1,2",
    "designation": 1,
    "location": 1,
    "att_set": 1,
    "department": 1,
    "branch": 1,
    "page": 1,
    "per_page": 10
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Get all Reports):


{
     "status": true,
     "code": 200,
      "data": [
          {
              "list": [
                  {
                      "ProcessDataId": 311,
                      "emp_code": "112",
                      "ProcessDataDate": "2024-01-01 00:00:00",
                      "StaffId": 112,
                      "StaffInTime": null,
                      "StaffInBiometricID": null,
                      "StaffOutTime": null,
                      "StaffOutBiometricId": null,
                      "WorkDurationMins": 0,
                      "BreakDurationMins": 0,
                      "LateEnteredBy": null,
                      "EarlyDepartureBy": null,
                      "LeaveTypeId": null,
                      "LeaveStatus": null,
                      "IsOnOutDoor": null,
                      "WeeklyOff": 0,
                      "Holiday": null,
                      "PunchRecords": null,
                      "ShiftsId": 4,
                      "ShiftStartTime": "2024-01-01 08:00",
                      "ShiftEndTime": "2024-01-01 18:00",
                      "Present": 1,
                      "Absent": 0,
                      "DetailedStatus": "Marked As Absent",
                      "Status": null,
                      "DetailedStatusCode": null,
                      "StatusCode": "A",
                      "Session1Status": null,
                      "Session2Status": null,
                      "OverTime": 1,
                      "IsOutPunchMissed": 0,
                      "IsInPunchMissed": 0,
                      "Remarks": null,
                      "TotalDurationMIns": 0,
                      "OverTime1": null,
                      "OverTime2": null,
                      "OverTime3": null,
                      "WorkDurationStr": null,
                      "TotalDurationStr": null,
                      "LateByDurationStr": null,
                      "EarlyByDurationStr": null,
                      "OverTimeDurationStr": null,
                      "InTimeDurationStr": null,
                      "OutTimeDurationStr": null,
                      "UniqueStatusCode": null,
                      "LeaveTypeId2": null,
                      "LeaveStatus2": null,
                      "BranchId": 1,
                      "DeptId": 3,
                      "AttSettingId": 1,
                      "attendance_setting": "",
                      "LocationId": 1,
                      "DesignationId": 1,
                      "EmploymentTypeId": 1,
                      "Session1InTime": null,
                      "Session1OutTime": null,
                      "Session1PunchRecords": null,
                      "Session2InTime": null,
                      "Session2OutTime": null,
                      "Session2PunchRecords": null,
                      "ProductionDurationStr": null,
                      "OverAllDuration": 0,
                      "LastModifiedDate": null,
                      "created_at": "2024-03-05 15:27:51",
                      "updated_at": "2024-03-05 15:27:51",
                      "ISFlexiShift": "0",
                      "emp_name": "CJ Sanoop",
                      "dept_name": "Human Resources",
                      "name": "Default",
                      "loc_name": "DefaultLoc",
                      "AttSettingName": "Default",
                      "ShiftCode": "GS",
                      "weekday": "Monday"
                  },
              ],
              "summary": {
                  "total_present": 52,
                  "total_weekly_off": 9
              },
          },
      ],
     "message": "Retrieved Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "fdate": [
          "validation.required"
        ],
        "tdate": [
          "validation.required"
        ],
        "calculate": [
          "validation.required"
        ],
       "report": [
          "validation.required"
        ],
        "group1": [
          "validation.required"
        ],
       "group2": [
          "validation.required"
        ],
      "sort_column": [
          "validation.required"
        ],
       "client_db_name": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/GetProcessData

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

fdate   string   

Example: 2024-01-01

tdate   string   

Example: 2024-03-01

calculate   integer   

Example: 0

report   string   

Example: basic

group1   integer   

Example: 0

group2   string   

Example: LocationId

sort_column   integer   

Example: 0

client_db_name   string   

Example: tt_10000

emp_code   integer  optional  

Example: 1

emp_ids   string  optional  

Example: 1,2

designation   integer  optional  

Example: 1

location   integer  optional  

Example: 1

att_set   integer  optional  

Example: 1

department   integer  optional  

Example: 1

branch   integer  optional  

Example: 1

page   integer   

Example: 1

per_page   integer   

Example: 10

Shifts

APIs for managing Shifts

Get Shifts

requires authentication

This endpoint is used to fetch all shifts available in the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetShifts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetShifts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Shifts):


{
     "status": true,
     "code": 200,
      "data": [
           {
               "ShiftId": 5,
               "ShiftName": "Flexible Shift",
               "ShiftCode": "FS",
               "ShiftStartTime": null,
               "ShiftEndTime": null,
               "PunchStartFromMins": null,
               "PunchEndAfterMins": null,
               "ShiftBreakStartTime": null,
               "ShiftBreakEndTime": null,
               "HalfDay": null,
               "HalfDayOccurence": "",
               "HalfDayDuration": "0",
               "HalfDayShiftEndTime": null,
               "IsFlexiShift": "1",
               "FlexiShiftDuration": "540",
               "FlexiShiftBreakDuration": "60",
               "IsFlexiShiftEndNextDay": null,
               "FlexiShiftEndBy": "23:59",
               "created_at": "2023-04-27T20:25:54.000000Z",
               "updated_at": "2023-04-27T20:25:54.000000Z"
           },
      ],
     "meta": {
          "current_page": 1,
          "from": 1,
          "last_page": 3,
          "links": {
              "first": "https://app.timetaag.com/api/v1/GetShifts?page=1",
              "last": "https://app.timetaag.com/api/v1/GetShifts?page=3",
              "prev": null,
              "next": "https://app.timetaag.com/api/v1/GetShifts?page=2"
          },
          "path": "https://app.timetaag.com/api/v1/GetShifts",
          "per_page": 10,
          "to": 10,
          "total": 23
      },
     "message": "Shifts Retrieved Successfully."
}
 

Request   

GET api/v1/GetShifts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Shift

requires authentication

This endpoint is used to get a single shift from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetShift/11" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetShift/11"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Shift):


{
    "status": true,
    "code": 200,
    "data": {
        "ShiftName": "abc",
        "ShiftCode": "abc",
        "IsFlexiShift": "0",
        "ShiftStartTime": "04:30",
        "ShiftEndTime": "05:30",
        "ShiftBreakStartTime": "04:30",
        "ShiftBreakEndTime": "05:30",
        "HalfDay": "Wednesday",
        "HalfDayOccurence": "1,2",
        "HalfDayDuration": "2",
        "PunchStartFromMins": "1",
        "PunchEndAfterMins": "3",
        "FlexiShiftDuration": "3",
        "FlexiShiftBreakDuration": "2",
        "IsFlexiShiftEndNextDay": "0",
        "FlexiShiftEndBy": "06:30",
        "updated_at": "2024-03-05T09:02:09.000000Z",
        "created_at": "2024-03-05T09:02:09.000000Z",
        "id": 15
    },
    "message": "Shift Retrieved Successfully."
}
 

Example response (400, Shift Not Found):


{
    "status": false,
    "code": 400,
    "message": "Shift Not Found."
}
 

Request   

GET api/v1/GetShift/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the shift Example: 11

Delete Shift

requires authentication

This endpoint is used to delete shift from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteShifts/18" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteShifts/18"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Shift):


{
    "status": true,
    "code": 200,
    "message": "Shift Deleted Successfully."
}
 

Example response (400, Shift Not Found):


{
  "status": false,
  "code": 400,
  "message": "Shift Not Found.",
}
 

Request   

DELETE api/v1/DeleteShifts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the shift Example: 18

Get Assign Shifts

requires authentication

This endpoint is used to fetch all assign shifts available in the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetAssignShifts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetAssignShifts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get all Assign Shifts):


{
     "status": true,
     "code": 200,
     "message": "Allocates Retrieved Successfully.",
     "data": [
          {
              "StaffShiftId": 11,
              "ShiftId": 4,
              "StaffId": 120,
              "StartDate": "2024-03-01",
              "EndDate": "2024-03-10",
              "created_at": "2023-08-23T17:01:41.000000Z",
              "updated_at": "2023-10-03T10:52:09.000000Z",
              "ShiftName": "General Shift",
              "id": 19,
              "emp_name": "CJ Talib",
              "photo": null,
              "emp_code": "120",
              "emp_branch": 1,
              "gender": "1",
              "biomatric_code": "120",
              "birth_date": "1990-01-01",
              "joindate": "2020-01-01",
              "resigning_date": "3000-01-01",
              "leave_credit_date": null,
              "contact_no": null,
              "email": null,
              "address": null,
              "login_name": null,
              "password": null,
              "timezone": null,
              "imei_number": null,
              "allow_in_out": null,
              "department": "3",
              "emp_type": "1",
              "team": "1",
              "shift_group": "1",
              "food_category": null,
              "manager": null,
              "holiday_group": null,
              "designation": 1,
              "location": 1,
              "attendance_setting": 1,
              "work_status": 1,
              "delete_status": 0,
              "blocked": 0,
              "last_login": null
          },
     ],
     "meta": {
          "current_page": 1,
          "from": 1,
          "last_page": 3,
          "links": {
              "first": "https://app.timetaag.com/api/v1/GetAssignShifts?page=1",
              "last": "https://app.timetaag.com/api/v1/GetAssignShifts?page=3",
              "prev": null,
              "next": "https://app.timetaag.com/api/v1/GetAssignShifts?page=2"
          },
          "path": "https://app.timetaag.com/api/v1/GetAssignShifts",
          "per_page": 10,
          "to": 10,
          "total": 23
      }
}
 

Request   

GET api/v1/GetAssignShifts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

Get Single Assign Shift

requires authentication

This endpoint is used to get single assign shift from the database.

Example request:
curl --request GET \
    --get "https://app.timetaag.com/api/v1/GetAssignShift/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/GetAssignShift/5"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Get a Single Assign Shift):


{
    "status": true,
    "code": 200,
    "data": {
        "StaffShiftId": 11,
        "ShiftId": 4,
        "StaffId": 120,
        "StartDate": "2024-03-01",
        "EndDate": "2024-03-10",
        "created_at": "2024-03-01T05:12:48.000000Z",
        "updated_at": "2024-03-05T09:19:01.000000Z"
    },
    "message": "Shift Retrieved Successfully."
}
 

Example response (400, Shift Not Found):


{
    "status": false,
    "code": 200,
    "message": "Shift Not Found."
}
 

Request   

GET api/v1/GetAssignShift/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the shift Example: 5

Delete Assign Shift

requires authentication

This endpoint is used to delete assign shift from the database.

Example request:
curl --request DELETE \
    "https://app.timetaag.com/api/v1/DeleteAssignShifts/13" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.timetaag.com/api/v1/DeleteAssignShifts/13"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200, Delete a Assign Shift):


{
    "status": true,
    "code": 200,
    "message": "Shift Deleted Successfully."
}
 

Example response (400, Shift Not Found):


{
    "status": false,
    "code": 400,
    "message": "Shift Not Found."
}
 

Request   

DELETE api/v1/DeleteAssignShifts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the shift Example: 13

Add Shift

requires authentication

This endpoint is used to add shift to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddShifts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"ShiftName\": \"Test\",
    \"ShiftCode\": \"test\",
    \"flexi_shift\": 1,
    \"shift_start_time\": \"04:30\",
    \"shift_end_time\": \"04:30\",
    \"shift_break_start_time\": \"04:30\",
    \"shift_break_end_time\": \"04:30\",
    \"half_day\": \"Wednesday\",
    \"half_day_occurence\": \"1,2\",
    \"half_day_duration\": 1,
    \"punch_start_from_mins\": 1,
    \"punch_end_after_mins\": 1,
    \"flexi_shift_duration\": 1,
    \"flexi_shift_break_duration\": 1,
    \"flexi_shift_end_next_day\": 1,
    \"flexi_shift_end_by\": \"06:30\",
    \"open_shift_duration\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddShifts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "ShiftName": "Test",
    "ShiftCode": "test",
    "flexi_shift": 1,
    "shift_start_time": "04:30",
    "shift_end_time": "04:30",
    "shift_break_start_time": "04:30",
    "shift_break_end_time": "04:30",
    "half_day": "Wednesday",
    "half_day_occurence": "1,2",
    "half_day_duration": 1,
    "punch_start_from_mins": 1,
    "punch_end_after_mins": 1,
    "flexi_shift_duration": 1,
    "flexi_shift_break_duration": 1,
    "flexi_shift_end_next_day": 1,
    "flexi_shift_end_by": "06:30",
    "open_shift_duration": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Shift):


{
    "status": true,
    "code": 200,
    "data": {
        "ShiftName": "abc",
        "ShiftCode": "abc",
        "IsFlexiShift": "0",
        "ShiftStartTime": "04:30",
        "ShiftEndTime": "05:30",
        "ShiftBreakStartTime": "04:30",
        "ShiftBreakEndTime": "05:30",
        "HalfDay": "Wednesday",
        "HalfDayOccurence": "1,2",
        "HalfDayDuration": "2",
        "PunchStartFromMins": "1",
        "PunchEndAfterMins": "3",
        "FlexiShiftDuration": "3",
        "FlexiShiftBreakDuration": "2",
        "IsFlexiShiftEndNextDay": "0",
        "FlexiShiftEndBy": "06:30",
        "updated_at": "2024-03-05T09:02:09.000000Z",
        "created_at": "2024-03-05T09:02:09.000000Z",
        "id": 15
    },
    "message": "Shift Created Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "Shift_name": [
          "validation.required"
        ],
        "Shift_code": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddShifts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

ShiftName   string   

unique Example: Test

ShiftCode   string   

unique Example: test

flexi_shift   integer  optional  

Example: 1

shift_start_time   string  optional  

Example: 04:30

shift_end_time   string  optional  

Example: 04:30

shift_break_start_time   string  optional  

Example: 04:30

shift_break_end_time   string  optional  

Example: 04:30

half_day   string  optional  

Example: Wednesday

half_day_occurence   string  optional  

Example: 1,2

half_day_duration   integer  optional  

Example: 1

punch_start_from_mins   integer  optional  

Example: 1

punch_end_after_mins   integer  optional  

Example: 1

flexi_shift_duration   integer  optional  

Example: 1

flexi_shift_break_duration   integer  optional  

Example: 1

flexi_shift_end_next_day   integer  optional  

Example: 1

flexi_shift_end_by   string  optional  

Example: 06:30

open_shift_duration   integer  optional  

Example: 1

Update Shift

requires authentication

This endpoint is used to update shift to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateShifts/15" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"ShiftName\": \"Test\",
    \"ShiftCode\": \"test\",
    \"flexi_shift\": 1,
    \"shift_start_time\": \"04:30\",
    \"shift_end_time\": \"04:30\",
    \"shift_break_start_time\": \"04:30\",
    \"shift_break_end_time\": \"04:30\",
    \"half_day\": \"Wednesday\",
    \"half_day_occurence\": \"1,2\",
    \"half_day_duration\": 1,
    \"punch_start_from_mins\": 1,
    \"punch_end_after_mins\": 1,
    \"flexi_shift_duration\": 1,
    \"flexi_shift_break_duration\": 1,
    \"flexi_shift_end_next_day\": 1,
    \"flexi_shift_end_by\": \"06:30\",
    \"open_shift_duration\": 1
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateShifts/15"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "ShiftName": "Test",
    "ShiftCode": "test",
    "flexi_shift": 1,
    "shift_start_time": "04:30",
    "shift_end_time": "04:30",
    "shift_break_start_time": "04:30",
    "shift_break_end_time": "04:30",
    "half_day": "Wednesday",
    "half_day_occurence": "1,2",
    "half_day_duration": 1,
    "punch_start_from_mins": 1,
    "punch_end_after_mins": 1,
    "flexi_shift_duration": 1,
    "flexi_shift_break_duration": 1,
    "flexi_shift_end_next_day": 1,
    "flexi_shift_end_by": "06:30",
    "open_shift_duration": 1
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Shift):


{
    "status": true,
    "code": 200,
    "data": {
        "ShiftName": "abc",
        "ShiftCode": "abc",
        "IsFlexiShift": "0",
        "ShiftStartTime": "04:30",
        "ShiftEndTime": "05:30",
        "ShiftBreakStartTime": "04:30",
        "ShiftBreakEndTime": "05:30",
        "HalfDay": "Wednesday",
        "HalfDayOccurence": "1,2",
        "HalfDayDuration": "2",
        "PunchStartFromMins": "1",
        "PunchEndAfterMins": "3",
        "FlexiShiftDuration": "3",
        "FlexiShiftBreakDuration": "2",
        "IsFlexiShiftEndNextDay": "0",
        "FlexiShiftEndBy": "06:30",
        "updated_at": "2024-03-05T09:02:09.000000Z",
        "created_at": "2024-03-05T09:02:09.000000Z",
        "id": 15
    },
    "message": "Shift Updated Successfully."
}
 

Example response (400, Shift Not Found):


{
    "status": false,
    "code": 400,
    "message": "Shift Not Found."
}
 

Request   

PATCH api/v1/UpdateShifts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the shift Example: 15

Body Parameters

ShiftName   string   

unique Example: Test

ShiftCode   string   

unique Example: test

flexi_shift   integer  optional  

Example: 1

shift_start_time   string  optional  

Example: 04:30

shift_end_time   string  optional  

Example: 04:30

shift_break_start_time   string  optional  

Example: 04:30

shift_break_end_time   string  optional  

Example: 04:30

half_day   string  optional  

Example: Wednesday

half_day_occurence   string  optional  

Example: 1,2

half_day_duration   integer  optional  

Example: 1

punch_start_from_mins   integer  optional  

Example: 1

punch_end_after_mins   integer  optional  

Example: 1

flexi_shift_duration   integer  optional  

Example: 1

flexi_shift_break_duration   integer  optional  

Example: 1

flexi_shift_end_next_day   integer  optional  

Example: 1

flexi_shift_end_by   string  optional  

Example: 06:30

open_shift_duration   integer  optional  

Example: 1

Add Assign Shift

requires authentication

This endpoint is used to add assign shift to the database.

Example request:
curl --request POST \
    "https://app.timetaag.com/api/v1/AddAssignShifts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"employee_codes\": \"[1,2]\",
    \"start_date\": \"2024-03-01\",
    \"end_date\": \"2024-03-01\",
    \"shift\": \"4\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/AddAssignShifts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "employee_codes": "[1,2]",
    "start_date": "2024-03-01",
    "end_date": "2024-03-01",
    "shift": "4"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Add a Assign Shift):


{
    "status": true,
    "code": 200,
    "data": [
        {
            "StaffId": "126",
            "ShiftId": "4",
            "StartDate": "2024-03-01",
            "EndDate": "2024-03-10",
            "updated_at": "2024-03-05T09:15:17.000000Z",
            "created_at": "2024-03-05T09:15:17.000000Z",
            "id": 12
        }
    ],
    "message": "Shift Assigned Successfully."
}
 

Example response (400, Validation Error):


{
  "status": false,
  "code": 400,
  "message": "Validation Error.",
  "data": {
        "employee_codes": [
          "validation.required"
        ],
        "start_date": [
          "validation.required"
        ],
       "end_date": [
          "validation.required"
        ],
       "shift": [
          "validation.required"
        ],
    }
}
 

Request   

POST api/v1/AddAssignShifts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

Body Parameters

employee_codes   string   

Example: [1,2]

start_date   string   

Example: 2024-03-01

end_date   string   

Example: 2024-03-01

shift   string   

Example: 4

Update Assign Shift

requires authentication

This endpoint is used to update assign shift to the database.

Example request:
curl --request PATCH \
    "https://app.timetaag.com/api/v1/UpdateAssignShifts/11" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "BioTaag-API-Key: YOUR-API-KEY" \
    --header "Idempotency-Key: base64_encode(\'body\')" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2024-03-01\",
    \"end_date\": \"2024-03-01\",
    \"shift\": \"4\"
}"
const url = new URL(
    "https://app.timetaag.com/api/v1/UpdateAssignShifts/11"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "BioTaag-API-Key": "YOUR-API-KEY",
    "Idempotency-Key": "base64_encode('body')",
    "Accept": "application/json",
};

let body = {
    "start_date": "2024-03-01",
    "end_date": "2024-03-01",
    "shift": "4"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update a Assign Shift):


{
    "status": true,
    "code": 200,
    "data": {
        "StaffShiftId": 11,
        "ShiftId": 4,
        "StaffId": 120,
        "StartDate": "2024-03-01",
        "EndDate": "2024-03-10",
        "created_at": "2024-03-01T05:12:48.000000Z",
        "updated_at": "2024-03-05T09:19:01.000000Z"
    },
    "message": "Shift Updated Successfully."
}
 

Example response (400, Shift Not Found):


{
    "status": false,
    "code": 200,
    "message": "Shift Not Found."
}
 

Request   

PATCH api/v1/UpdateAssignShifts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

BioTaag-API-Key      

Example: YOUR-API-KEY

Idempotency-Key      

Example: base64_encode('body')

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the shift Example: 11

Body Parameters

start_date   string   

Example: 2024-03-01

end_date   string   

Example: 2024-03-01

shift   string   

Example: 4