Introduction
The Talenox API is organized around REST. The APIs are predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors.
Talenox API token
You can obtain the Talenox API token via the website https://app.talenox.com. Head over to the top right nav bar -> API setting.
Difference of V2 from V1
V1 authenticates requests by checking for API token in URL, V2 moved the token into Authorization request header.
Aside from authentication mechanism, V2 is functionally identical to V1. They are using the same underlying implementation.
OAuth 2.0
Introduction
Talenox supports using OAuth 2.0 to grant third-party systems to access Talenox resources. With OAuth 2.0 application, users are able to define their own permission for accessing the resources.
Where to find and create
Follow these steps to create OAuth 2.0 application for your company:
Log into Talenox https://app.talenox.com
At the top right nav > API Settings, there is a link to the OAuth 2.0 developer page
Create the OAuth 2.0 application by providing Application Name, Redirect URI, Origin URI (Optional) and Scopes
Usage
Direct the user to
https://app.talenox.com/oauth/authorize?client_id=<client ID>&redirect_uri=<redirect URI>&scope=<scope>&response_type=codeAfter the user login and authorize the access, it will be redirect back to the Redirect URI with the code
To obtain the Access Token, with the code from the previous step, make a POST request to
https://app.talenox.com/oauth/token?grant_type=authorization_code&code=<code>&client_id=<client ID>&client_secret=<client secret>&redirect_uri=<redirect URI>The Access Token is valid for 30 minutes. To refresh the Access Token, make a POST to
https://app.talenox.com/oauth/token?grant_type=refresh_token&code=<access code>&refresh_token=<refresh token>&client_id=<client ID>&client_secret=<client secret>&redirect_uri=<redirect URI>
Branches
Create Branch
Request
Endpoint
POST https://api.talenox.com/api/v2/branches
POST https://api.talenox.com/api/v2/branches
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7c42e46557386b23c161faefe09630caa3494ed4
Parameters
{
"branch": {
"name": "Sample Branch",
"address": "666 Feest Branch",
"postcode": "44125",
"head_id": 856,
"employee_ids": [
857,
858,
856,
859
]
}
}
| Name | Description |
|---|---|
| name required | Name of Branch |
| address | Address |
| postcode | Postcode |
| head_id | Branch Head (Should be an Employee ID) |
| employee_ids | Employee IDs (If specified, will override the existing employees in the branch). |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 937,
"name": "Sample Branch",
"employee_ids": [
857,
858,
856,
859
],
"no_of_employees": 4,
"address": "666 Feest Branch",
"postcode": "44125",
"head_id": 856
}
Delete Branch
Request
Endpoint
DELETE https://api.talenox.com/api/v2/branches/:id
DELETE https://api.talenox.com/api/v2/branches/982
Accept: application/json
Content-Type: application/json
Authorization: Bearer d7c60c2b2f35021b748cc04c9674439273bbe19c
Parameters
| Name | Description |
|---|---|
| id required | Branch ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted branch 982"
}
List Branches
Request
Endpoint
GET https://api.talenox.com/api/v2/branches
GET https://api.talenox.com/api/v2/branches
Accept: application/json
Content-Type: application/json
Authorization: Bearer b274fc3c9929cd1b7a12903dae3a4a7db61b0e9c
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 918,
"name": "Justinview",
"employee_ids": [
853
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 921,
"name": "Branch 45",
"employee_ids": [
854,
855
],
"no_of_employees": 2,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 919,
"name": "Branch 43",
"employee_ids": [],
"no_of_employees": 0,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 920,
"name": "Branch 44",
"employee_ids": [],
"no_of_employees": 0,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 907,
"name": "Default",
"employee_ids": [],
"no_of_employees": 0,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 908,
"name": "Runolfsdottirburgh",
"employee_ids": [
843
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 909,
"name": "Beataborough",
"employee_ids": [
844
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 910,
"name": "Dinamouth",
"employee_ids": [
845
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 911,
"name": "New Ismael",
"employee_ids": [
846
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 912,
"name": "Zettaport",
"employee_ids": [
847
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 913,
"name": "New Dawna",
"employee_ids": [
848
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 914,
"name": "West Erikport",
"employee_ids": [
849
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 915,
"name": "New Rob",
"employee_ids": [
850
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 916,
"name": "New Barryburgh",
"employee_ids": [
851
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
},
{
"id": 917,
"name": "Lake Brittani",
"employee_ids": [
852
],
"no_of_employees": 1,
"address": null,
"postcode": null,
"head_id": null
}
]
Show Branch
Request
Endpoint
GET https://api.talenox.com/api/v2/branches/:id
GET https://api.talenox.com/api/v2/branches/952
Accept: application/json
Content-Type: application/json
Authorization: Bearer d9cbfbd8760caf13ae1d9e2affe620733d2d4cd6
Parameters
| Name | Description |
|---|---|
| id required | Branch ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 952,
"name": "Branch 51",
"employee_ids": [
880,
881
],
"no_of_employees": 2,
"address": null,
"postcode": null,
"head_id": null
}
Update Branch
Request
Endpoint
PUT https://api.talenox.com/api/v2/branches/:id
PUT https://api.talenox.com/api/v2/branches/967
Accept: application/json
Content-Type: application/json
Authorization: Bearer ed87425e11049de12e0a691ddad18a5a418c46a0
Parameters
{
"branch": {
"name": "New Branch Name",
"employee_ids": [
882,
883,
884,
885
]
}
}
| Name | Description |
|---|---|
| id required | Branch ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 967,
"name": "New Branch Name",
"employee_ids": [
882,
883,
884,
885
],
"no_of_employees": 4,
"address": null,
"postcode": null,
"head_id": null
}
Company Settings
List Company Settings
Request
Endpoint
GET https://api.talenox.com/api/v2/company_settings
GET https://api.talenox.com/api/v2/company_settings
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1924eb871ed4a6ccc9850916b1d5033b8cc349e2
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"api_allows_employee_multiple_cost_centres": false
}
Update Company Settings
Request
Endpoint
PUT https://api.talenox.com/api/v2/company_settings
PUT https://api.talenox.com/api/v2/company_settings
Accept: application/json
Content-Type: application/json
Authorization: Bearer acbb61e7172c3fc33b19c510202f72684b2cce0d
Parameters
{
"company_settings": {
"api_allows_employee_multiple_cost_centres": true
}
}
| Name | Description |
|---|---|
| api_allows_employee_multiple_cost_centres | Set this to true for cost centres endpoint to accept multiple cost centres for any employee. (This is to avoid breaking previous API implementation) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"api_allows_employee_multiple_cost_centres": true
}
Cost Centres
Create Cost Centre
Request
Endpoint
POST https://api.talenox.com/api/v2/cost_centres
POST https://api.talenox.com/api/v2/cost_centres
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6a24d230d843cc250134a257e30908e0def530a6
Parameters
{
"cost_centre": {
"name": "Business",
"employee_ids": [
"9vtrgqc6yd",
"zyxj2h9ibs",
"jpa5tp10d3",
"5e767y9nrq"
],
"enable_custom_cpf_csn": true,
"custom_cpf_csn": "123456789"
}
}
| Name | Description |
|---|---|
| name required | Name of Cost Centre |
| enable_custom_cpf_csn | Enable custom CPF Submission |
| custom_cpf_scn | Custom CPF Number |
| employee_ids | Employee IDs (If specified, will override the existing employees in the cost centre). Set api_allows_employee_multiple_cost_centres of Company Settings to true to allow placement the same employee in multiple cost centres. |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 3,
"name": "Business",
"employee_ids": [
989,
985,
986,
987
],
"no_of_employees": 4,
"enable_custom_cpf_csn": true,
"custom_cpf_csn": "123456789",
"enable_custom_mpf": false,
"custom_mpf_employer_no": null,
"mpf_provider_id": null,
"custom_empf_scheme": null,
"custom_empf_payroll_group_name": null
}
Delete Cost Centre
Request
Endpoint
DELETE https://api.talenox.com/api/v2/cost_centres/:id
DELETE https://api.talenox.com/api/v2/cost_centres/11
Accept: application/json
Content-Type: application/json
Authorization: Bearer a8a1247903e830ffa09047162253b082464b0971
Parameters
| Name | Description |
|---|---|
| id required | Cost Centre ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted cost centre Xuan Summit"
}
List Cost Centre
Request
Endpoint
GET https://api.talenox.com/api/v2/cost_centres
GET https://api.talenox.com/api/v2/cost_centres
Accept: application/json
Content-Type: application/json
Authorization: Bearer aef37f7d798a3e116e14078a1a9878a47a43bda1
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 1,
"name": "Runte Springs",
"employee_ids": [],
"no_of_employees": 0,
"enable_custom_cpf_csn": null,
"custom_cpf_csn": null,
"enable_custom_mpf": false,
"custom_mpf_employer_no": null,
"mpf_provider_id": null,
"custom_empf_scheme": null,
"custom_empf_payroll_group_name": null
}
]
Update Cost Centre
Request
Endpoint
PUT https://api.talenox.com/api/v2/cost_centres/:id
PUT https://api.talenox.com/api/v2/cost_centres/10
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5ab2a24ec409512f0798abf6e9156d1d2eafb94b
Parameters
{
"cost_centre": {
"name": "Engineer",
"employee_ids": [
"s4lntb24w9",
"rc3msca250",
"f1tcdizmh3",
"vy6fypv7bq"
],
"enable_custom_cpf_csn": true,
"custom_cpf_csn": "123456788"
}
}
| Name | Description |
|---|---|
| id required | Cost Centre ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 10,
"name": "Engineer",
"employee_ids": [
1028,
1022,
1023,
1024
],
"no_of_employees": 4,
"enable_custom_cpf_csn": true,
"custom_cpf_csn": "123456788",
"enable_custom_mpf": false,
"custom_mpf_employer_no": null,
"mpf_provider_id": null,
"custom_empf_scheme": null,
"custom_empf_payroll_group_name": null
}
Custom Pay Items
Create Custom Pay Item
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/custom_pay_items
POST https://api.talenox.com/api/v2/payroll/custom_pay_items
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6dbaac438cb3367ecb3cf5af4a6d217dad280571
Parameters
{
"custom_pay_item": {
"proration_enabled": false,
"category": "Recurring",
"item_type": "Salary/Wages",
"gross_net_settings": "gross",
"tax": true,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"overtime_rate": 1.5,
"additional_sg_info_attributes": {
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage"
},
"additional_hk_info_attributes": {
"mpf": true,
"adw": true
},
"additional_my_info_attributes": {
"epf": true,
"socso": true,
"eis": true,
"hrdf": true
},
"additional_id_info_attributes": {
"bpjs": true,
"thr": true
}
}
}
| Name | Description |
|---|---|
| proration_enabled | Proration Enabled |
| categoary | Category (["Recurring", "Adhoc", "Attendance", "Additional"]) |
| item_type | Item Type |
| gross_net_settings | Gross/Net settings |
| tax | Tax |
| payslip_display_settings | Payslip Display Settings (["Item Name", "Remarks", "Period", "Calculation"]) |
| overtime_rate | Overtime rate (for Attendance category only) |
| additional_sg_info_attributes | SG pay item related fields |
| cpf | CPF |
| sdl | SDL |
| shg | SHG |
| cpf_owage_awage | OWAGE/AWAGE |
| additional_hk_info_attributes | HK pay item related fields |
| mpf | MPF |
| adw | ADW |
| additional_my_info_attributes | MY pay item related fields |
| epf | EPF |
| socso | SOCSO |
| eis | EIS |
| hrdf | HRDF |
| additional_id_info_attributes | ID pay item related fields |
| bpjs | BPJS |
| thr | THR |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 35667,
"item_type": "Salary/Wages",
"name": null,
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "47ff17b2-73d5-4a46-8bde-9a208e95c402",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34365,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": {
"id": 428,
"mpf": true,
"adw": true
},
"additional_my_info": {
"id": 449,
"epf": true,
"socso": true,
"eis": true,
"hrdf": true
},
"additional_id_info": {
"id": 421,
"bpjs": true,
"thr": true
}
}
Delete Custom Pay Item
Request
Endpoint
DELETE https://api.talenox.com/api/v2/payroll/custom_pay_items/:id
DELETE https://api.talenox.com/api/v2/payroll/custom_pay_items/36005
Accept: application/json
Content-Type: application/json
Authorization: Bearer b62fb34d24e744f81324d5448d29bf6e5f32267e
Parameters
| Name | Description |
|---|---|
| id required | Custom Pay Item ID |
Response
content-type: text/plain; charset=utf-8
200 OK
Get Custom Pay Item
Request
Endpoint
GET https://api.talenox.com/api/v2/payroll/custom_pay_items/:id
GET https://api.talenox.com/api/v2/payroll/custom_pay_items/35752
Accept: application/json
Content-Type: application/json
Authorization: Bearer 0e1ec2164206e21e0f7a368b36050927feb13a4c
Parameters
| Name | Description |
|---|---|
| id required | Custom Pay Item ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 35752,
"item_type": "Salary/Wages",
"name": "Basic Pay",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": true,
"slug": "87906d99-8d2c-4ef5-a29e-3f4977fa4366",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Remarks",
"Period"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34450,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
}
List all Custom Pay Items
Request
Endpoint
GET https://api.talenox.com/api/v2/payroll/custom_pay_items
GET https://api.talenox.com/api/v2/payroll/custom_pay_items
Accept: application/json
Content-Type: application/json
Authorization: Bearer e03d9700bd7c92415203fe8183a92f5ece71ead4
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 35700,
"item_type": "IR21 Tax Withholding",
"name": "IR21 Tax Withholding",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "71386034-1629-476b-8842-206dbc84e5a0",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34398,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35668,
"item_type": "Salary/Wages",
"name": "Basic Pay",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": true,
"slug": "02a22a6f-d721-42b6-a31e-db092f542ebb",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Remarks",
"Period"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34366,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35669,
"item_type": "Salary/Wages",
"name": "Basic Pay(without proration)",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "be366d90-5f07-49a6-b4f5-1e8d382085ab",
"is_default": false,
"payslip_display_settings": [
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34367,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35670,
"item_type": "Allowance",
"name": "Allowance",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": true,
"slug": "b757ea8a-97e7-4b3a-b4a4-ebb53e636188",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34368,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35671,
"item_type": "Allowance",
"name": "Allowance(without proration)",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "baaaf124-62cf-42d1-a936-3b059298c996",
"is_default": false,
"payslip_display_settings": [
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34369,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35672,
"item_type": "Deduction",
"name": "Deduction",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "06adc15d-399f-455f-9338-ce817d8e58bc",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34370,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35673,
"item_type": "Deduction",
"name": "Deduction (from Net Salary)",
"category": "Recurring",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "131523dd-b983-4b6d-83cd-f75d170e5761",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34371,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35674,
"item_type": "IR21 Tax Withholding",
"name": "IR21 Tax Withholding",
"category": "Recurring",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "d1eca36c-77eb-4d85-970b-c474e80e74a4",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34372,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35675,
"item_type": "Commission",
"name": "Commission (Daily/Weekly/Monthly)",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "da312b0e-3a01-4dd4-bd25-bc6d0875db9a",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34373,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35676,
"item_type": "Extra Duty Allowance",
"name": "Extra Duty Allowance",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "3048a4a3-86fa-4a23-9c7f-f9f9dfa0d904",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34374,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35677,
"item_type": "Housing/Rental Allowance",
"name": "Housing/ Rental Allowance",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e66ac9fd-f64c-4cab-a7e9-e800138517ea",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34375,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35678,
"item_type": "Incentive Allowance",
"name": "Incentive Allowance",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "f9764648-6b1d-4d22-b7b9-215861a2c2dd",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34376,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35679,
"item_type": "Meal Allowance",
"name": "Meal Allowance",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "607b416f-5b5d-4b3e-8ce4-b6e2d3e27148",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34377,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35680,
"item_type": "Per Diem Allowance",
"name": "Per Diem Allowance",
"category": "Recurring",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "18f4b4d8-e4d3-4aa3-9c01-458e4026ebca",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34378,
"cpf": true,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35681,
"item_type": "Transport Allowance",
"name": "Transport Allowance",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "84fd5fb2-12b5-47f7-8960-66b33ae72f58",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34379,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35682,
"item_type": "Tips",
"name": "Tips",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e73d1fdb-69df-4e1e-8801-ae7e87c73478",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34380,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35683,
"item_type": "Director fees",
"name": "Director fees",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "518d8580-66db-47b4-8c74-1aec76c20501",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34381,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35684,
"item_type": "Bonus",
"name": "Bonus",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "64a8fa76-01cf-4974-88fb-af37da8eb630",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34382,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35685,
"item_type": "Others",
"name": "Others",
"category": "Recurring",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "0d6c77a0-8931-4b9f-8529-23e796d1f54d",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34383,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35686,
"item_type": "Deduction",
"name": "Deduction (from Net Salary)(no SHG contribution)",
"category": "Recurring",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "9d0de440-57f2-40bb-8900-26da2d9467a7",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34384,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35687,
"item_type": "Commission",
"name": "Commission (AW)",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "3009ce1a-a246-4ba8-9c9a-8b3adc1cfe2e",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34385,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35688,
"item_type": "Medisave",
"name": "Medisave",
"category": "Recurring",
"tax": true,
"gross_net_settings": "na",
"proration_enabled": false,
"slug": "002360d2-a08f-48b9-b893-5bb01ebb916c",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34386,
"cpf": true,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35689,
"item_type": "Deduction Community Chest",
"name": "Deduction Community Chest",
"category": "Recurring",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "27545b45-3f21-46f9-a5e6-109058a1bf75",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34387,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35690,
"item_type": "Reimbursements",
"name": "Reimbursements",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "3cabc5d8-9774-4283-b2a1-14c62a7101a8",
"is_default": false,
"payslip_display_settings": [
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34388,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35691,
"item_type": "Advance Pay",
"name": "Advance Pay",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "e5bf3eac-5564-4283-8fe7-823dafb82ebc",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34389,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35692,
"item_type": "Allowance",
"name": "Allowance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "78dcd18e-1224-4b43-bb93-367b80060b9a",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34390,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35693,
"item_type": "Deduction",
"name": "Deduction",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "ec15d1b7-1206-42bc-b550-34bd3b737e8a",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34391,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35694,
"item_type": "Commission",
"name": "Commission (Irregular)",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "eb23acc9-5b5c-47ca-97c8-d8183797db72",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34392,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35695,
"item_type": "Extra Duty Allowance",
"name": "Extra Duty Allowance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "4dd88680-eff1-4448-b254-cd171959fe9e",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34393,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35696,
"item_type": "Festive Allowance",
"name": "Festive Allowance",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e7afcf3f-5328-4b4c-b560-5c6affc795ca",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34394,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35697,
"item_type": "Housing/Rental Allowance",
"name": "Housing/ Rental Allowance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "282c4453-5449-4f27-b5c9-23077f26461b",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34395,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35698,
"item_type": "Incentive",
"name": "Incentive",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "0fc722cd-d105-44bf-9d09-ecfb5c378977",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34396,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35699,
"item_type": "Incentive Allowance",
"name": "Incentive Allowance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "acd77e5c-a75e-4090-b553-f6834e717ef1",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34397,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35701,
"item_type": "Meal Allowance",
"name": "Meal Allowance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "a0b8d93c-7f5a-46bc-9ef9-6d8dcc5c2473",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34399,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35702,
"item_type": "Per Diem Allowance",
"name": "Per Diem Allowance",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "f3d3d218-5bd6-40d6-ad62-2225951f0883",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34400,
"cpf": true,
"sdl": false,
"shg": false,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35703,
"item_type": "Reimbursements",
"name": "Per Diem Reimbursement",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "ca570f51-6ed2-4f11-95af-df198ce59b46",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34401,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35704,
"item_type": "Transport Allowance",
"name": "Transport Allowance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "51b5cb10-9cb1-4628-a6ec-08f2738d91f6",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34402,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35705,
"item_type": "Referral of Employees Fees",
"name": "Referral of Employees Fees",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "b2aa6419-0122-4433-ae7b-89de0c203058",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34403,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35706,
"item_type": "Benefits in Kind",
"name": "Benefits in Kind",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "31f3e5f9-3c64-4287-b823-d0f3dec86f4b",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34404,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35707,
"item_type": "Benefits in Kind",
"name": "Gifts in Kind",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "b1bd7fc1-b26a-4f71-918b-4b6e4419c7b5",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34405,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35708,
"item_type": "Stock Option Sale",
"name": "Share Option Sale",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e6b005bd-283f-46b9-89a4-863322db3d0b",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34406,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35709,
"item_type": "Termination Benefits",
"name": "Termination Benefits",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "a65b0d68-b10b-450f-87bd-c023930e93fc",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34407,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35710,
"item_type": "Tips",
"name": "Tips",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "c92a56f9-ace8-44b1-96a0-8608ba5bc13b",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34408,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35711,
"item_type": "Annual Wage Supplement",
"name": "Annual Wage Supplement",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "f2a4e966-87ca-4361-803b-b1ce84146297",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34409,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35712,
"item_type": "Bonus",
"name": "Bonus",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "b72b9dad-a9f2-4ee6-b7ac-12ceba489d6e",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34410,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35713,
"item_type": "Bonus",
"name": "Prior Year Bonus",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "b6db5670-3edd-46c4-a212-a919769e76af",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34411,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35714,
"item_type": "Annual Wage Supplement",
"name": "Prior Year AWS",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "9288620a-a9a0-4732-be8b-ddff56d984af",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34412,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35715,
"item_type": "Leave Pay",
"name": "Leave Pay",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "ef107576-c0c7-4756-8c8e-ed7ae9f3c691",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Remarks",
"Calculation"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34413,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35716,
"item_type": "Director fees",
"name": "Director fees",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "64d97500-ea50-4239-86b8-625c90a6e3dd",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34414,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35717,
"item_type": "Backdated Salary",
"name": "Backdated Salary Increment",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "87d20ad1-2189-4767-879c-95e11a85bbb8",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34415,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35718,
"item_type": "Backdated Salary",
"name": "Backdated Salary",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "de7030fb-5aff-4c71-b73b-4af311abc744",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34416,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35719,
"item_type": "Deduction",
"name": "Deduction (from Net Salary)",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "e1451c0b-ca3d-4251-8e21-a873acb1c639",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34417,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35720,
"item_type": "Others",
"name": "Others",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "54cbb50c-dc44-4f86-8ea8-a7bae324acbe",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34418,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35721,
"item_type": "Others",
"name": "Others(no gross)",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "fd2c830d-d551-420e-9743-4ef3c4ba5696",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34419,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35722,
"item_type": "Salary in Lieu",
"name": "Salary in lieu",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "d019a6a6-d042-4ccf-8e9e-b3bb50a94629",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34420,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35723,
"item_type": "Incentive",
"name": "Onboarding incentive",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "3e9a76f7-64d4-436f-8c7b-48a51444f4d4",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34421,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35724,
"item_type": "Gratuity",
"name": "Gratuity paid for years of service",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "bf0437a3-f76c-424e-aacb-321559b7051d",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34422,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35725,
"item_type": "Compensation for loss of employment",
"name": "Compensation for loss of employment",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "97b95c43-1da1-4b31-9e7d-4f70048238e1",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34423,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35726,
"item_type": "Deduction",
"name": "Deduction (from Net Salary)(no SHG contribution)",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "5781fa35-5ffe-409e-abb5-b07994b8f399",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34424,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35727,
"item_type": "Deduction",
"name": "NS Leave Claims Deduction",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "net",
"proration_enabled": false,
"slug": "0929d4d8-6f54-443a-b203-bc28092c8921",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34425,
"cpf": false,
"sdl": false,
"shg": false,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35728,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Personal Insurance",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "305cf3a3-29ad-492a-81de-f47d063eaa88",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34426,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35729,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Optical Expenses",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "1e9d9cdb-fb4b-4416-9960-b8fb5a563854",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34427,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35730,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Health Screening & Vaccinations",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "fa832ddf-93fd-4d22-8484-f1aa1b9c46c2",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34428,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35731,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Childcare / Eldercare Fees For Dependants",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "40a08ae6-13bf-46f2-9729-c6084478ec63",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34429,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35732,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Medical Expenses For Dependants",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "a91d6ad4-3aef-4729-aa9c-0bea8393737d",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34430,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35733,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Dental Expenses For Dependants",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "074e3a41-181b-49a5-b942-75b3853a8150",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34431,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35734,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Gym Membership",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "75e9d8a2-5b0b-4662-95c3-08411269fc7d",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34432,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35735,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Holiday Expenses",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "ddfbafc4-48b6-4abd-9ab9-e51891045370",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34433,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35736,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit TCM / CHIRO/ PHYSIO",
"category": "Adhoc",
"tax": false,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "094681dc-0148-4708-b84b-b06669b4402c",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34434,
"cpf": true,
"sdl": false,
"shg": false,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35737,
"item_type": "Gratuity",
"name": "Gratuity",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "a2a18a82-0ffa-478f-af68-e8afed5d5542",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34435,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35738,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Work From Home",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "8447a20d-8510-4ff5-8e5b-333f33ed57cd",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34436,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35739,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Mental Health Awareness",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "5c9d4d8c-3da8-4f53-9553-66f10f4479b8",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34437,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35740,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Personal Planning & Enrichment",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "2f6a275e-df7c-4728-af4c-54c52bf3662d",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34438,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35741,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Home Affairs Support",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e1206298-7f0f-4ef1-a2b4-cad00b723dc1",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34439,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35742,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Home Family Bonding Facilitation",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "793c2e11-0dc2-46c2-ba28-94f049558ff3",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34440,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35743,
"item_type": "Flexi-Benefit",
"name": "Flexi-Benefit Professional Subscription",
"category": "Adhoc",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "5cdc0541-6e93-41fd-bde0-add1f9b0ead0",
"is_default": false,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34441,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35744,
"item_type": "Regular Hours",
"name": "Regular Hours",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "affb8f3a-5842-47f9-a1a7-d45ca3678b72",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34442,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35745,
"item_type": "Overtime Hours",
"name": "Overtime Hours",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e96946ff-f428-4101-8bd7-7a7d2c6bd0c7",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34443,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35746,
"item_type": "Regular Days",
"name": "Regular Days",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "ec5f1005-f504-4d95-9b2d-16f7b0c3e851",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34444,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35747,
"item_type": "Overtime Days",
"name": "Overtime Days",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "97e9d263-59f9-4d3d-ba11-088cba8d3dc8",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34445,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35748,
"item_type": "Public Holiday Pay",
"name": "Public Holiday Pay",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "0c228919-66a0-4690-bffc-c19ee436d650",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34446,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35749,
"item_type": "Rest Day Pay",
"name": "Rest Day Pay",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "80b5bcf5-c61b-43df-96b9-6dbac58c28ed",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34447,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35750,
"item_type": "Deputy",
"name": "Deputy Awage",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "5a3c8be3-4b83-4f9d-ba71-42c1b1f09ae4",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34448,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "awage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
},
{
"id": 35751,
"item_type": "Deputy",
"name": "Deputy",
"category": "Attendance",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "e5a6911e-456c-416d-9918-2cde2773e9d0",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Calculation",
"Remarks"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34449,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": null,
"additional_my_info": null,
"additional_id_info": null
}
]
Update Custom Pay Item
Request
Endpoint
PATCH https://api.talenox.com/api/v2/payroll/custom_pay_items/:id
PATCH https://api.talenox.com/api/v2/payroll/custom_pay_items/35836
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1d837f3c97d17e750e0274f57ed9afc65012b338
Parameters
{
"custom_pay_item": {
"proration_enabled": false,
"category": "Recurring",
"item_type": "Allowance",
"gross_net_settings": "gross",
"tax": true,
"payslip_display_settings": [
"Item Name",
"Remarks"
],
"overtime_rate": 1.5,
"additional_sg_info_attributes": {
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage"
},
"additional_hk_info_attributes": {
"mpf": true,
"adw": true
},
"additional_my_info_attributes": {
"epf": true,
"socso": true,
"eis": true,
"hrdf": true
},
"additional_id_info_attributes": {
"bpjs": true,
"thr": true
}
}
}
| Name | Description |
|---|---|
| id required | Custom Pay Item ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 35836,
"item_type": "Allowance",
"name": "Basic Pay",
"category": "Recurring",
"tax": true,
"gross_net_settings": "gross",
"proration_enabled": false,
"slug": "fe2acdf1-ac42-4371-bf0e-862f328e640a",
"is_default": true,
"payslip_display_settings": [
"Item Name",
"Remarks",
"Period"
],
"pay_code": null,
"triggered_custom_pay_item_ids": [],
"formula_expression_id": null,
"additional_sg_info": {
"id": 34618,
"cpf": true,
"sdl": true,
"shg": true,
"cpf_owage_awage": "owage",
"tax_allowance": false
},
"additional_hk_info": {
"id": 429,
"mpf": true,
"adw": true
},
"additional_my_info": {
"id": 450,
"epf": true,
"socso": true,
"eis": true,
"hrdf": true
},
"additional_id_info": {
"id": 422,
"bpjs": true,
"thr": true
}
}
Employee Roles
Create Role
Request
Endpoint
POST https://api.talenox.com/api/v2/roles
POST https://api.talenox.com/api/v2/roles
Accept: application/json
Content-Type: application/json
Authorization: Bearer f2cf721fa60b477e4510ceba3da2e49fe4dd8158
Parameters
{
"role": {
"name": "Manager",
"employee_ids": [
1719,
1718,
1720,
1721
]
}
}
| Name | Description |
|---|---|
| name required | Role name |
| employee_ids | Employee IDs (If specified, will override the existing employees for the role). |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1716,
"name": "Manager",
"employee_ids": [
1719,
1718,
1720,
1721
],
"no_of_employees": 4
}
Delete Role
Request
Endpoint
DELETE https://api.talenox.com/api/v2/roles/:id
DELETE https://api.talenox.com/api/v2/roles/1758
Accept: application/json
Content-Type: application/json
Authorization: Bearer 432f32197de093543dffebd2d343913f71584b83
Parameters
| Name | Description |
|---|---|
| id required | Role ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted role 1758"
}
List Roles
Request
Endpoint
GET https://api.talenox.com/api/v2/roles
GET https://api.talenox.com/api/v2/roles
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3215afada88be0e557826769ebfec793c58bce73
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 1688,
"name": "teacher",
"employee_ids": [
1705
],
"no_of_employees": 1
},
{
"id": 1689,
"name": "nurse",
"employee_ids": [
1706
],
"no_of_employees": 1
},
{
"id": 1690,
"name": "lawyer",
"employee_ids": [
1707
],
"no_of_employees": 1
},
{
"id": 1691,
"name": "newsreader",
"employee_ids": [
1708
],
"no_of_employees": 1
},
{
"id": 1692,
"name": "veterinary doctor",
"employee_ids": [
1709
],
"no_of_employees": 1
},
{
"id": 1693,
"name": "window cleaner",
"employee_ids": [
1710
],
"no_of_employees": 1
},
{
"id": 1694,
"name": "advocate",
"employee_ids": [
1711
],
"no_of_employees": 1
},
{
"id": 1695,
"name": "optician",
"employee_ids": [
1712
],
"no_of_employees": 1
},
{
"id": 1696,
"name": "carpenter",
"employee_ids": [
1713
],
"no_of_employees": 1
},
{
"id": 1697,
"name": "builder",
"employee_ids": [
1714
],
"no_of_employees": 1
},
{
"id": 1698,
"name": "human resources",
"employee_ids": [
1715
],
"no_of_employees": 1
},
{
"id": 1699,
"name": "akqhkbbunpbvnlpnumsxyjttalqfegoh",
"employee_ids": [],
"no_of_employees": 0
},
{
"id": 1700,
"name": "aogdlkvdoopqixhkonqrezobbovkekom",
"employee_ids": [],
"no_of_employees": 0
},
{
"id": 1701,
"name": "Engineer",
"employee_ids": [
1716,
1717
],
"no_of_employees": 2
}
]
Show Role
Request
Endpoint
GET https://api.talenox.com/api/v2/roles/:id
GET https://api.talenox.com/api/v2/roles/1730
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6eb9922382ff0b3799178f624bed8053ee212307
Parameters
| Name | Description |
|---|---|
| id required | Role ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1730,
"name": "Engineer",
"employee_ids": [
1742,
1743
],
"no_of_employees": 2
}
Update Role
Request
Endpoint
PUT https://api.talenox.com/api/v2/roles/:id
PUT https://api.talenox.com/api/v2/roles/1744
Accept: application/json
Content-Type: application/json
Authorization: Bearer b5e492ed31b6a80cb3e0d923f206e4bf7ed88ee4
Parameters
{
"role": {
"name": "New Role Name",
"employee_ids": [
1744,
1745,
1746,
1747
]
}
}
| Name | Description |
|---|---|
| id required | Role ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1744,
"name": "New Role Name",
"employee_ids": [
1744,
1745,
1746,
1747
],
"no_of_employees": 4
}
Employees
Create HK Employee
Request
Endpoint
POST https://api.talenox.com/api/v2/employees
POST https://api.talenox.com/api/v2/employees
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6e4cfbfeab55fb643d5609fd406bd267879f7710
Parameters
{
"invite_user": true,
"employee": {
"employee_id": 1,
"first_name": "Hafsah",
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "1/1/2015",
"contact_number": 123456789,
"ssn": "S1111111D",
"citizenship": "Hong Kong Permanent Resident",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Single",
"passport_number": "MA123456",
"passport_date_of_issue": "01/01/2017",
"passport_date_of_expiry": "01/12/2022",
"passport_place_of_issue": "Singapore",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "01/01/2021",
"date_of_second_dose": "01/11/2021",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "01/12/2021",
"vaccination_remarks": "",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "01/01/2015",
"confirmation_date": "01/01/2019",
"default_cost_centre_id": "",
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"current_job_attributes": {
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"rate_of_pay": "Monthly",
"currency": "SGD",
"amount": 4000
},
"bank_account_attributes": {
"bank_type": "DBS",
"bank_code": 1,
"account_name": "Hafsah Haigh",
"number": 131231231231231231,
"branch_code": 1,
"branch_name": "",
"swift_code": "",
"payment_code": 1,
"dbs_company_id": ""
},
"additional_hk_employee_info_attributes": {
"voluntary_employee_contribution": 100,
"voluntary_employer_contribution": 200,
"mpf_scheme": 0,
"mpf_member_account_number": 123123123,
"mpf_enrolled_date": "01/01/2015"
},
"location_attributes": {
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": 12345,
"state": null,
"country_name": "Singapore"
}
}
}
| Name | Description |
|---|---|
| invite_user | If true will create a talenox user for the employee and invite them |
| employee_id | Employee ID |
| first_name required | First name |
| last_name | Last name |
| chinese_name | Chinese name |
| nickname | Nickname |
| identification_full_name | Identification full name |
| email required | Email address |
| hired_date | Hired date |
| confirmation_date | Confirmation date |
| resign_date | Resign date |
| contact_number | Contact number |
| office_did | Office Direct Inward Dialing (DID) Number |
| ssn required | Identification number |
| ssn_should_validate | Should valdate identification number |
| citizenship required | Immigration status |
| nationality | Nationality |
| gender | Gender |
| race | Race |
| religion | Religion |
| marital_status | Marital status |
| birthdate | Birth date |
| passport_number | Passport number |
| passport_date_of_issue | Passport issue date |
| passport_date_of_expiry | Passport expiry date |
| passport_place_of_issue | Passport place of issue |
| vaccination_status | Vaccination status |
| vaccine_brand | Vaccine brand |
| date_of_first_dose | Date of first dose |
| date_of_second_dose | Date of second dose |
| vaccine_booster_brand | Vaccine booster brand |
| date_of_booster_dose | Date of second dose |
| vaccination_remarks | Vaccination remarks |
| payment_method required | Payment type |
| cost_centre_id | Default Cost centre ID (Same as default_cost_centre_id) |
| default_cost_centre_id | Default Cost centre ID (Set the company setting api_allows_employee_multiple_cost_centres to true to avoid resetting employee cost centres when changing default_cost_centre_id value) |
| cost_centre_ids | Cost centre IDs (to assign employee to multiple cost centres) |
| blood_group | Blood group |
| leaving_country | Leaving country |
| employee_attachment_access | Employee attachment access |
| accounting_split | Accounting split |
| employee_can_update_custom_fields | Employee can update custom fields |
| employee_attachment_access | Employee attachment access |
| reason_for_cessation | Reason for cessation |
| other_reason_for_cessation | Other reason for cessation |
| custom_fields | Custom fields |
| current_job_attributes | Below are Employee's Job related fields |
| title | Job title |
| department | Department |
| start_date | Job start date |
| end_date | Job end date |
| remarks | Remarks |
| rate_of_pay | Rate of pay |
| currency | Currency |
| amount | Basic pay amount |
| bank_account_parameters | Below are Employee's Bank Account related fields |
| bank_type | Bank name |
| bank_code | Bank code |
| account_name | Bank account name |
| number | Bank account number |
| branch_code | Branch code |
| branch_name | Branch name |
| swift_code | Bank swift code |
| payment_code | Payment code (Hang Seng and HSBC only) |
| dbs_company_id | DBS company ID (DBS only) |
| employee_using_cheque | Employee using cheque |
| location_parameters | Below are Employee's Address related fields |
| line_1 | Address line 1 |
| line_2 | Address line 2 |
| postal_code | Postal code |
| state | State |
| country_name | Country name |
| additional_hk_employee_info_parameters | Below are HK Employee's related fields |
| voluntary_employee_contribution_type | MPF Voluntary Employee Additional Contribution Type (["Percentage", "Fixed Amount"]) |
| voluntary_employee_contribution | MPF Voluntary Employee Additional amount (If percentage is chosen, must be one of ["3%", "5%", "6%", "7%", "8%", "9%", "10%", "11%", "12%", "13%", "14%", "15%"]) |
| voluntary_employee_contribution_setting | MPF Voluntary Employee Deduction Setting (["Gross Salary", "Net Salary"]) |
| voluntary_employer_contribution_type | MPF Voluntary Employer Additional Contribution Type (["Percentage", "Fixed Amount"]) |
| voluntary_employer_contribution | MPF Voluntary Employer Additional amount (If percentage is chosen, must be one of ["3%", "5%", "6%", "7%", "8%", "9%", "10%", "11%", "12%", "13%", "14%", "15%"]) |
| voluntary_employer_contribution_setting | MPF Voluntary Employer Deduction Setting (["Gross Salary", "Net Salary"]) |
| mpf_scheme required | MPF Scheme. 0 => Master trust scheme, 2 => Not contributing MPF |
| mpf_employee_type | MPF employee type (["regular", "casual"]) |
| mpf_member_account_number | MPF account number |
| mpf_enrolled_date | MPF enrolled date |
| identification_expiry_date | Identification expiry date. When you use the API to update this field, we will map to the immigration expiry field. E.g. for IANG, we will map to iang_expiry_date. |
| identification_issue_date | Identification issue date. When you use the API to update this field, we will map to the immigration issue field. E.g. for IANG, we will map to iang_issue_date. |
| non_pr_issue_date | Non PR Issue Date |
| non_pr_expiry_date | Non PR Expiry Date |
| foreigner_issue_date | Foreigner Issue Date |
| foreigner_expiry_date | Foreigner Expiry Date |
| iang_issue_date | IANG Issue Date |
| iang_expiry_date | IANG Expiry Date |
| student_issue_date | Student Issue Date |
| student_expiry_date | Student Expiry Date |
| dependants_issue_date | Dependants Issue Date |
| dependants_expiry_date | Dependants Expiry Date |
| gep_issue_date | GEP Issue Date |
| gep_expiry_date | GEP Expiry Date |
| qmas_issue_date | QMAS Issue Date |
| qmas_expiry_date | QMAS Expiry Date |
| ttps_issue_date | TTPS Issue Date |
| ttps_expiry_date | TTPS Expiry Date |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1045,
"employee_id": "1",
"first_name": "Hafsah",
"middle_name": null,
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "2015-01-01",
"resign_date": null,
"confirmation_date": "2019-01-01",
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": "123456789",
"office_did": null,
"ssn": "S1111111D",
"ssn_should_validate": true,
"citizenship": "Hong Kong Permanent Resident",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Single",
"passport_number": "MA123456",
"passport_date_of_issue": "2017-01-01",
"passport_date_of_expiry": "2022-12-01",
"passport_place_of_issue": "Singapore",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "2015-01-01",
"slug": "hafsah-haigh-ee89b253",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "2021-01-01",
"date_of_second_dose": "2021-11-01",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "2021-12-01",
"vaccination_remarks": "",
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 48,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 48,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1204,
"bank_type": "DBS",
"bank_code": "1",
"branch_code": "1",
"branch_name": null,
"number": "131231231231231231",
"dbs_company_id": "",
"swift_code": "DHBKHKHH",
"account_name": "Hafsah Haigh",
"payment_code": "1",
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1363,
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": "12345",
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": {
"voluntary_employee_contribution": "100.0",
"voluntary_employer_contribution": "200.0",
"mpf_scheme": "master_trust_scheme",
"mpf_employee_type": "regular",
"mpf_member_account_number": "123123123",
"mpf_enrolled_date": "2015-01-01",
"non_pr_issue_date": null,
"non_pr_expiry_date": null,
"foreigner_issue_date": null,
"foreigner_expiry_date": null,
"iang_issue_date": null,
"iang_expiry_date": null,
"student_issue_date": null,
"student_expiry_date": null,
"dependants_issue_date": null,
"dependants_expiry_date": null,
"voluntary_employer_contribution_type": "Fixed Amount",
"voluntary_employer_contribution_rate": null,
"voluntary_employee_contribution_type": "Fixed Amount",
"voluntary_employee_contribution_rate": null,
"gep_expiry_date": null,
"gep_issue_date": null,
"qmas_issue_date": null,
"qmas_expiry_date": null,
"ttps_issue_date": null,
"ttps_expiry_date": null,
"asmtp_issue_date": null,
"asmtp_expiry_date": null,
"voluntary_employer_contribution_setting": "Gross Salary",
"voluntary_employee_contribution_setting": "Gross Salary"
},
"additional_sg_employee_info": null,
"additional_my_employee_info": null,
"additional_id_employee_info": null,
"additional_uae_employee_info": null
}
Create ID Employee
Request
Endpoint
POST https://api.talenox.com/api/v2/employees
POST https://api.talenox.com/api/v2/employees
Accept: application/json
Content-Type: application/json
Authorization: Bearer ece638dc94d1c49ba1dcf1fa3d07efca3c2ccb77
Parameters
{
"invite_user": true,
"employee": {
"employee_id": 1,
"first_name": "Hafsah",
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "1/1/2015",
"contact_number": 123456789,
"ssn": "S1111111D",
"citizenship": "KTP (Residential Identity Card)",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Single",
"passport_number": "MA123456",
"passport_date_of_issue": "01/01/2017",
"passport_date_of_expiry": "01/12/2022",
"passport_place_of_issue": "Singapore",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "01/01/2021",
"date_of_second_dose": "01/11/2021",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "01/12/2021",
"vaccination_remarks": "",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "01/01/2015",
"confirmation_date": "01/01/2019",
"default_cost_centre_id": "",
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"current_job_attributes": {
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"rate_of_pay": "Monthly",
"currency": "SGD",
"amount": 4000
},
"bank_account_attributes": {
"bank_type": "Standard Chartered",
"bank_code": 1,
"account_name": "Hafsah Haigh",
"number": 131231231231231231,
"branch_code": 1,
"branch_name": "",
"swift_code": "",
"payment_code": 1,
"dbs_company_id": ""
},
"additional_id_employee_info_attributes": {
"tax_processing_date": "01/01/2015",
"ptkp": "TK/0",
"npwp": "1234567891234567",
"tax_scheme": "gross",
"previous_past_net": 100,
"previous_past_tax": 100,
"previous_past_net_tax_effective_date": "01/01/2015",
"bpjs_tk_process_date": "01/01/2015",
"bpjs_tk_number": "1234567891234567",
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": "01/01/2015",
"bpjs_kesehatan_number": "1234567891234567",
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": 1,
"bpjs_kesehatan_borne_by_employer": true,
"bpjs_tk_jht_borne_by_employer": true,
"bpjs_jp_borne_by_employer": true,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered"
},
"location_attributes": {
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": 12345,
"state": null,
"country_name": "Singapore"
},
"ssn_should_validate": false
}
}
| Name | Description |
|---|---|
| invite_user | If true will create a talenox user for the employee and invite them |
| employee_id | Employee ID |
| first_name required | First name |
| last_name | Last name |
| chinese_name | Chinese name |
| nickname | Nickname |
| identification_full_name | Identification full name |
| email required | Email address |
| hired_date | Hired date |
| confirmation_date | Confirmation date |
| resign_date | Resign date |
| contact_number | Contact number |
| office_did | Office Direct Inward Dialing (DID) Number |
| ssn required | Identification number |
| ssn_should_validate | Should valdate identification number |
| citizenship required | Immigration status |
| nationality | Nationality |
| gender | Gender |
| race | Race |
| religion | Religion |
| marital_status | Marital status |
| birthdate | Birth date |
| passport_number | Passport number |
| passport_date_of_issue | Passport issue date |
| passport_date_of_expiry | Passport expiry date |
| passport_place_of_issue | Passport place of issue |
| vaccination_status | Vaccination status |
| vaccine_brand | Vaccine brand |
| date_of_first_dose | Date of first dose |
| date_of_second_dose | Date of second dose |
| vaccine_booster_brand | Vaccine booster brand |
| date_of_booster_dose | Date of second dose |
| vaccination_remarks | Vaccination remarks |
| payment_method required | Payment type |
| cost_centre_id | Default Cost centre ID (Same as default_cost_centre_id) |
| default_cost_centre_id | Default Cost centre ID (Set the company setting api_allows_employee_multiple_cost_centres to true to avoid resetting employee cost centres when changing default_cost_centre_id value) |
| cost_centre_ids | Cost centre IDs (to assign employee to multiple cost centres) |
| blood_group | Blood group |
| leaving_country | Leaving country |
| employee_attachment_access | Employee attachment access |
| accounting_split | Accounting split |
| employee_can_update_custom_fields | Employee can update custom fields |
| employee_attachment_access | Employee attachment access |
| reason_for_cessation | Reason for cessation |
| other_reason_for_cessation | Other reason for cessation |
| custom_fields | Custom fields |
| current_job_attributes | Below are Employee's Job related fields |
| title | Job title |
| department | Department |
| start_date | Job start date |
| end_date | Job end date |
| remarks | Remarks |
| rate_of_pay | Rate of pay |
| currency | Currency |
| amount | Basic pay amount |
| bank_account_parameters | Below are Employee's Bank Account related fields |
| bank_type | Bank name |
| bank_code | Bank code |
| account_name | Bank account name |
| number | Bank account number |
| branch_code | Branch code |
| branch_name | Branch name |
| swift_code | Bank swift code |
| payment_code | Payment code (Hang Seng and HSBC only) |
| dbs_company_id | DBS company ID (DBS only) |
| employee_using_cheque | Employee using cheque |
| location_parameters | Below are Employee's Address related fields |
| line_1 | Address line 1 |
| line_2 | Address line 2 |
| postal_code | Postal code |
| state | State |
| country_name | Country name |
| additional_id_employee_info_parameters | Below are ID Employee's related fields |
| tax_processing_date required | Tax Processing Date |
| ptkp required | PTKP / Tax Deductions Category |
| npwp | NPWP / Tax Identification Number |
| tax_scheme required | Tax Scheme |
| previous_past_net | Previous Past Net |
| previous_past_tax | Previous Past Tax |
| previous_past_net_tax_effective_date | Previous Past Net & Tax Effective Date |
| bpjs_tk_process_date | BPJS TK Process Date |
| bpjs_tk_number | BPJS TK Number |
| bpjs_tk_policy required | BPJS JKK Policy |
| bpjs_tk_jht_borne_by_employer required | BPJS JHT borne by employer |
| bpjs_jp_policy required | BPJS JP Policy |
| bpjs_jp_borne_by_employer required | BPJS JP borne by employer |
| work_accident_insurance_contribution_rate | BPJS JKK Contribution Rate (Required if BPJS JKK Policy is registered) |
| bpjs_jkm_policy required | BPJS JKM Policy |
| bpjs_tk_jht_policy required | BPJS JHT Policy |
| bpjs_kesehatan_process_date | BPJS Kesehatan Process Date |
| bpjs_kesehatan_number | BPJS Kesehatan Number |
| bpjs_kesehatan_policy required | BPJS Kesehatan Policy |
| no_of_bpjs_kesehatan_dependents | BPJS Kesehatan Additional Dependants |
| bpjs_kesehatan_borne_by_employer required | BPJS Kesehatan borne by employer |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1047,
"employee_id": "1",
"first_name": "Hafsah",
"middle_name": null,
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "2015-01-01",
"resign_date": null,
"confirmation_date": "2019-01-01",
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": "123456789",
"office_did": null,
"ssn": "S1111111D",
"ssn_should_validate": false,
"citizenship": "KTP (Residential Identity Card)",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Single",
"passport_number": "MA123456",
"passport_date_of_issue": "2017-01-01",
"passport_date_of_expiry": "2022-12-01",
"passport_place_of_issue": "Singapore",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "2015-01-01",
"slug": "hafsah-haigh-ba933669",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "2021-01-01",
"date_of_second_dose": "2021-11-01",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "2021-12-01",
"vaccination_remarks": "",
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 50,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 50,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1214,
"bank_type": "Standard Chartered",
"bank_code": "1",
"branch_code": "1",
"branch_name": null,
"number": "131231231231231231",
"dbs_company_id": "",
"swift_code": "SCBLIDJXXXX",
"account_name": "Hafsah Haigh",
"payment_code": "1",
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1381,
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": "12345",
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": null,
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2015-01-01",
"ptkp": "TK/0",
"npwp": "1234567891234567",
"tax_scheme": "gross",
"previous_past_net": "100.0",
"previous_past_tax": "100.0",
"bpjs_tk_process_date": "2015-01-01",
"bpjs_tk_number": "1234567891234567",
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": "2015-01-01",
"bpjs_kesehatan_number": "1234567891234567",
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": 1,
"bpjs_kesehatan_borne_by_employer": true,
"bpjs_tk_jht_borne_by_employer": true,
"bpjs_jp_borne_by_employer": true,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": "2015-01-01"
},
"additional_uae_employee_info": null
}
Create MY Employee
Request
Endpoint
POST https://api.talenox.com/api/v2/employees
POST https://api.talenox.com/api/v2/employees
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9cc8794c91c057356dcf29e43ff44cbb72223f5d
Parameters
{
"invite_user": true,
"employee": {
"employee_id": 1,
"first_name": "Hafsah",
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "1/1/2015",
"contact_number": 123456789,
"ssn": "S1111111D",
"citizenship": "Resident",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Married and Spouse Not Working",
"passport_number": "MA123456",
"passport_date_of_issue": "01/01/2017",
"passport_date_of_expiry": "01/12/2022",
"passport_place_of_issue": "Singapore",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "01/01/2021",
"date_of_second_dose": "01/11/2021",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "01/12/2021",
"vaccination_remarks": "",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "01/01/2015",
"confirmation_date": "01/01/2019",
"default_cost_centre_id": "",
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"current_job_attributes": {
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"rate_of_pay": "Monthly",
"currency": "SGD",
"amount": 4000
},
"bank_account_attributes": {
"bank_type": "DBS",
"bank_code": 1,
"account_name": "Hafsah Haigh",
"number": 131231231231231231,
"branch_code": 1,
"branch_name": "",
"swift_code": "",
"payment_code": 1,
"dbs_company_id": ""
},
"additional_my_employee_info_attributes": {
"is_contributing_epf": true,
"epf_number": 123456789,
"employee_epf_setting": "Statutory Default",
"employer_epf_setting": "12%",
"pcb_number": 12312312,
"socso_setting": "Employment Injury Scheme and Invalidity Scheme",
"socso_number": 123123124,
"work_permit_expiry_date": "31/12/2026",
"disabled_individual": false,
"disabled_spouse": false,
"has_eis": true,
"zakat_number": 123123123,
"zakat_amount": 1000,
"accumulated_remuneration_bik_vola": 50.2,
"accumulated_deductions_epf_and_other_funds": 100.9,
"accumulated_deductions_mtd": 700.22,
"accumulated_deductions_zakat_paid": 500.4,
"accumulated_year": 2018,
"accumulated_deductions_medical_treatment_special_needs_or_carer": 50.4,
"accumulated_deductions_father_relief": 2000.9,
"accumulated_deductions_mother_relief": 3020,
"accumulated_deductions_basic_supporting_equipment": 2400,
"accumulated_deductions_higher_education_fees_self": 5090,
"accumulated_deductions_medical_expenses_on_serious_diseases": 1900,
"accumulated_deductions_complete_medical_examination": 990,
"accumulated_deductions_net_deposit_in_sspn": 13123,
"accumulated_deductions_payment_of_alimony_to_former_wife": 500.12,
"accumulated_deductions_contribution_to_private_retirement_schem": 1000.2,
"accumulated_deductions_education_and_medical_insurance": 2000.59,
"accumulated_deductions_interest_on_housing_loan": 290.1,
"accumulated_deductions_tax_deduction_for_lifestyle": 900.5,
"accumulated_deductions_tax_deduction_for_purchase_of_breastfeed": 200,
"accumulated_deductions_tax_deduction_for_fees_paid_to_child_car": 1300,
"noc_under_18_full": 1,
"noc_under_18_half": 2,
"noc_18_above_studying_degree_in_malaysia_full": 3,
"noc_18_above_studying_degree_in_malaysia_half": 4,
"noc_18_above_studying_diploma_in_malaysia_full": 5,
"noc_18_above_studying_diploma_in_malaysia_half": 6,
"noc_18_above_studying_at_least_degree_outside_malaysia_full": 7,
"noc_18_above_studying_at_least_degree_outside_malaysia_half": 8,
"noc_disabled_full": 9,
"noc_disabled_half": 1,
"noc_disabled_studying_at_least_diploma_full": 2,
"noc_disabled_studying_at_least_diploma_half": 2,
"accumulated_month": "September",
"accumulated_month_year": "01/10/2018"
},
"location_attributes": {
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": 12345,
"state": "Johor",
"country_name": "Malaysia"
}
}
}
| Name | Description |
|---|---|
| invite_user | If true will create a talenox user for the employee and invite them |
| employee_id | Employee ID |
| first_name required | First name |
| last_name | Last name |
| chinese_name | Chinese name |
| nickname | Nickname |
| identification_full_name | Identification full name |
| email required | Email address |
| hired_date | Hired date |
| confirmation_date | Confirmation date |
| resign_date | Resign date |
| contact_number | Contact number |
| office_did | Office Direct Inward Dialing (DID) Number |
| ssn required | Identification number |
| ssn_should_validate | Should valdate identification number |
| citizenship required | Immigration status |
| nationality | Nationality |
| gender | Gender |
| race | Race |
| religion | Religion |
| marital_status | Marital status |
| birthdate | Birth date |
| passport_number | Passport number |
| passport_date_of_issue | Passport issue date |
| passport_date_of_expiry | Passport expiry date |
| passport_place_of_issue | Passport place of issue |
| vaccination_status | Vaccination status |
| vaccine_brand | Vaccine brand |
| date_of_first_dose | Date of first dose |
| date_of_second_dose | Date of second dose |
| vaccine_booster_brand | Vaccine booster brand |
| date_of_booster_dose | Date of second dose |
| vaccination_remarks | Vaccination remarks |
| payment_method required | Payment type |
| cost_centre_id | Default Cost centre ID (Same as default_cost_centre_id) |
| default_cost_centre_id | Default Cost centre ID (Set the company setting api_allows_employee_multiple_cost_centres to true to avoid resetting employee cost centres when changing default_cost_centre_id value) |
| cost_centre_ids | Cost centre IDs (to assign employee to multiple cost centres) |
| blood_group | Blood group |
| leaving_country | Leaving country |
| employee_attachment_access | Employee attachment access |
| accounting_split | Accounting split |
| employee_can_update_custom_fields | Employee can update custom fields |
| employee_attachment_access | Employee attachment access |
| reason_for_cessation | Reason for cessation |
| other_reason_for_cessation | Other reason for cessation |
| custom_fields | Custom fields |
| current_job_attributes | Below are Employee's Job related fields |
| title | Job title |
| department | Department |
| start_date | Job start date |
| end_date | Job end date |
| remarks | Remarks |
| rate_of_pay | Rate of pay |
| currency | Currency |
| amount | Basic pay amount |
| bank_account_parameters | Below are Employee's Bank Account related fields |
| bank_type | Bank name |
| bank_code | Bank code |
| account_name | Bank account name |
| number | Bank account number |
| branch_code | Branch code |
| branch_name | Branch name |
| swift_code | Bank swift code |
| payment_code | Payment code (Hang Seng and HSBC only) |
| dbs_company_id | DBS company ID (DBS only) |
| employee_using_cheque | Employee using cheque |
| location_parameters | Below are Employee's Address related fields |
| line_1 | Address line 1 |
| line_2 | Address line 2 |
| postal_code | Postal code |
| state | State |
| country_name | Country name |
| additional_my_employee_info_parameters | Below are MY Employee's related fields |
| is_contributing_epf | Is employee contributing to EPF (For Malaysia employee) |
| epf_number | EPF number |
| employee_epf_setting | Employee EPF setting |
| employer_epf_setting | Employer EPF setting |
| pcb_number | PCB number |
| socso_setting | SOCSO setting |
| socso_number | SOCSO number |
| skbbk_contribution_required | Contribute SOCSO Lindung 24 Jam |
| work_permit_expiry_date | Work permit expiry date |
| disabled_individual | Is Disabled individual |
| disabled_spouse | Is Disabled spouse |
| pcb_borne_by_employer | Pcb borne by employer |
| has_eis | Has EIS |
| zakat_number | Zakat Number |
| zakat_amount | Zakat Amount |
| is_contributing_hrdf | Contribute HRDF? (For Malaysia employee) |
| accumulated_remuneration_bik_vola | Accumulated remuneration/Benefit-In-Kind (BIK)/Value Of Living Accomodation (VOLA) |
| accumulated_deductions_epf_and_other_funds | Accumulated EPF and Other Approved Funds [do not include life premium insurance] |
| accumulated_deductions_mtd | Accumulated MTD paid (including MTD on additional remuneration) |
| accumulated_deductions_zakat_paid | Accumulated Zakat paid |
| accumulated_deductions_medical_treatment_special_needs_or_carer | Accumulated Medical expenses for own parents, special need and parent care |
| accumulated_deductions_father_relief | Accumulated Father Relief |
| accumulated_deductions_mother_relief | Accumulated Mother Relief |
| accumulated_deductions_basic_supporting_equipment | Accumulated Basic supporting equipment for disabled self, spouse, child or parent |
| accumulated_deductions_higher_education_fees_self | Accumulated Education fees |
| accumulated_deductions_medical_expenses_on_serious_diseases | Accumulated Medical expenses on serious diseases for self, spouse or child |
| accumulated_deductions_complete_medical_examination | Accumulated Complete medical examination for self, spouse or child |
| accumulated_deductions_net_deposit_in_sspn | Accumulated Net deposit in Skim Simpanan Pendidikan Nasional (SSPN) |
| accumulated_deductions_payment_of_alimony_to_former_wife | Accumulated Payment of alimony to former wife |
| accumulated_deductions_contribution_to_private_retirement_schem | Accumulated Deferred annuity premium or contribution to Private Retriement Scheme |
| accumulated_deductions_education_and_medical_insurance | Accumulated Education and medical insurance premium |
| accumulated_deductions_interest_on_housing_loan | Accumulated Interest on Housing Loan |
| accumulated_deductions_tax_deduction_for_lifestyle | Accumulated Purchase of readings, computer, smartphone, tablet, sport equipment, gymnasium membership and subscription of broadband internet |
| accumulated_deductions_tax_deduction_for_purchase_of_breastfeed | Accumulated Purchase of Breastfeeding Equipment(deduction is allowed once every 2 years for women tax payer only) |
| accumulated_deductions_tax_deduction_for_fees_paid_to_child_car | Accumulated Fees paid to Child Care Centre and Kindergartens |
| accumulated_deductions_socso_payment | Accumulated SOCSO Contribution |
| accumulated_deductions_life_insurance_for_retired_civil_servant | Accumulated life insurance for retired civil servant |
| accumulated_deductions_life_insurance_for_other_than_retired_ci | Accumulated life insurance for other than retired civil servant |
| accumulated_deductions_sports_equipment_rental_registration_fee | Accumulated sports equipment for sports activities |
| accumulated_deductions_purchase_of_personal_computer_smartphone | Accumulated purchase of personal computer, smartphone or tablet |
| accumulated_deductions_fee_at_registered_premises_and_tourist_a | Accumulated accommodation fee at the accommodation premises registered |
| accumulated_deductions_expenses_on_electric_vehicle_charging_fa | Accumulated expenses on Electric Vehicle Charging Facilities and equipment |
| noc_under_18_full | Eligible children full deduction(RM2000 each) |
| noc_under_18_half | Eligible children half deduction(RM2000 each) |
| noc_18_above_studying_degree_in_malaysia_full | Above 18 years and studying full time in Degree level onwards (inside Malaysia) (Full deduction) |
| noc_18_above_studying_degree_in_malaysia_half | Above 18 years and studying full time in Degree level onwards (inside Malaysia) (Half deduction) |
| noc_18_above_studying_diploma_in_malaysia_full | Above 18 years and studying full time in diploma level onwards (inside Malaysia) (Full deduction) |
| noc_18_above_studying_diploma_in_malaysia_half | Above 18 years and studying full time in diploma level onwards (inside Malaysia) (Half deduction) |
| noc_18_above_studying_at_least_degree_outside_malaysia_full | Above 18 years and studying full time in Degree level onwards (outside Malaysia) (Full deduction) |
| noc_18_above_studying_at_least_degree_outside_malaysia_half | Above 18 years and studying full time in Degree level onwards (outside Malaysia) (Half deduction) |
| noc_disabled_full | Disabled children (Full deduction) |
| noc_disabled_half | Disabled children (Half deduction) |
| noc_disabled_studying_at_least_diploma_full | Disabled child studying in diploma or higher level (in Malaysia)/degree or its equivalent (outside Malaysia) |
| noc_disabled_studying_at_least_diploma_half | Disabled child studying in diploma or higher level (in Malaysia)/degree or its equivalent (outside Malaysia) |
| accumulated_month | Accumulated month |
| accumulated_year | Accumulated year |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1046,
"employee_id": "1",
"first_name": "Hafsah",
"middle_name": null,
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "2015-01-01",
"resign_date": null,
"confirmation_date": "2019-01-01",
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": "123456789",
"office_did": null,
"ssn": "S1111111D",
"ssn_should_validate": true,
"citizenship": "Resident",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Married and Spouse Not Working",
"passport_number": "MA123456",
"passport_date_of_issue": "2017-01-01",
"passport_date_of_expiry": "2022-12-01",
"passport_place_of_issue": "Singapore",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "2015-01-01",
"slug": "hafsah-haigh-07901c29",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "2021-01-01",
"date_of_second_dose": "2021-11-01",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "2021-12-01",
"vaccination_remarks": "",
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 49,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 49,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1209,
"bank_type": "DBS",
"bank_code": "1",
"branch_code": "1",
"branch_name": null,
"number": "131231231231231231",
"dbs_company_id": "",
"swift_code": "DBSSMY2A",
"account_name": "Hafsah Haigh",
"payment_code": "1",
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1372,
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": "12345",
"state": "Johor",
"country_name": "Malaysia",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": null,
"additional_my_employee_info": {
"is_contributing_epf": true,
"epf_number": "123456789",
"employee_epf_setting": "Statutory Default",
"employer_epf_setting": "12%",
"pcb_number": "12312312",
"socso_setting": "Employment Injury Scheme and Invalidity Scheme",
"socso_number": "123123124",
"citizenship": "Resident",
"disabled_individual": false,
"disabled_spouse": false,
"pcb_borne_by_employer": false,
"has_eis": true,
"zakat_number": "123123123",
"is_contributing_hrdf": true,
"skbbk_contribution_required": true,
"zakat_amount": "1000.0",
"accumulated_remuneration_bik_vola": "50.2",
"accumulated_deductions_epf_and_other_funds": "100.9",
"accumulated_deductions_mtd": "700.22",
"accumulated_deductions_zakat_paid": "500.4",
"accumulated_year": "2018",
"accumulated_deductions_socso_payment": "0.0",
"accumulated_deductions_medical_treatment_special_needs_or_carer": "50.4",
"accumulated_deductions_father_relief": "2000.9",
"accumulated_deductions_mother_relief": "3020.0",
"accumulated_deductions_basic_supporting_equipment": "2400.0",
"accumulated_deductions_higher_education_fees_self": "5090.0",
"accumulated_deductions_medical_expenses_on_serious_diseases": "1900.0",
"accumulated_deductions_complete_medical_examination": "990.0",
"accumulated_deductions_net_deposit_in_sspn": "13123.0",
"accumulated_deductions_payment_of_alimony_to_former_wife": "500.12",
"accumulated_deductions_contribution_to_private_retirement_schem": "1000.2",
"accumulated_deductions_education_and_medical_insurance": "2000.59",
"accumulated_deductions_interest_on_housing_loan": "290.1",
"accumulated_deductions_tax_deduction_for_lifestyle": "900.5",
"accumulated_deductions_tax_deduction_for_purchase_of_breastfeed": "200.0",
"accumulated_deductions_tax_deduction_for_fees_paid_to_child_car": "1300.0",
"accumulated_deductions_skills_improvement_self_improvement_cour": "0.0",
"accumulated_deductions_vaccination_expenses": "0.0",
"accumulated_deductions_sports_equipment_rental_registration_fee": "0.0",
"accumulated_deductions_purchase_of_personal_computer_smartphone": "0.0",
"accumulated_deductions_fee_at_registered_premises_and_tourist_a": "0.0",
"accumulated_deductions_expenses_on_electric_vehicle_charging_fa": "0.0",
"noc_under_18_full": 1,
"noc_under_18_half": 2,
"noc_18_above_studying_degree_in_malaysia_full": 3,
"noc_18_above_studying_degree_in_malaysia_half": 4,
"noc_18_above_studying_diploma_in_malaysia_full": 5,
"noc_18_above_studying_diploma_in_malaysia_half": 6,
"noc_18_above_studying_at_least_degree_outside_malaysia_full": 7,
"noc_18_above_studying_at_least_degree_outside_malaysia_half": 8,
"noc_disabled_full": 9,
"noc_disabled_half": 1,
"noc_disabled_studying_at_least_diploma_full": 2,
"noc_disabled_studying_at_least_diploma_half": 2,
"accumulated_month": "September",
"accumulated_month_year": "2018-09-01",
"accumulated_deductions_life_insurance_for_retired_civil_servant": "0.0",
"accumulated_deductions_life_insurance_for_other_than_retired_ci": "0.0",
"socso_first_contribution_month_year": null,
"work_permit_expiry_date": "2026-12-31",
"first_time_home_loan_details_normalized": {
"property_value": null,
"year_of_spa_signed": null,
"start_year_of_paying_interest": null,
"amount_of_interest_paid_per_year": {
"year_1": null,
"year_2": null,
"year_3": null
},
"total_interest_all_parties": null
}
},
"additional_id_employee_info": null,
"additional_uae_employee_info": null
}
Create SG Employee
Request
Endpoint
POST https://api.talenox.com/api/v2/employees
POST https://api.talenox.com/api/v2/employees
Accept: application/json
Content-Type: application/json
Authorization: Bearer b19f4fc488736c91aa7c490158034ddd936ca205
Parameters
{
"invite_user": true,
"employee": {
"employee_id": 1,
"first_name": "Hafsah",
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "1/1/2015",
"contact_number": 123456789,
"ssn": "S1111111D",
"citizenship": "S Pass",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Single",
"passport_number": "MA123456",
"passport_date_of_issue": "01/01/2017",
"passport_date_of_expiry": "01/12/2022",
"passport_place_of_issue": "Singapore",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "01/01/2021",
"date_of_second_dose": "01/11/2021",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "01/12/2021",
"vaccination_remarks": "",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "01/01/2015",
"confirmation_date": "01/01/2019",
"default_cost_centre_id": 12,
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"current_job_attributes": {
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"rate_of_pay": "Monthly",
"currency": "SGD",
"amount": 4000
},
"bank_account_attributes": {
"bank_type": "DBS",
"bank_code": 1,
"account_name": "Hafsah Haigh",
"number": 131231231231231231,
"branch_code": 1,
"branch_name": "",
"swift_code": "",
"payment_code": 1,
"dbs_company_id": ""
},
"additional_sg_employee_info_attributes": {
"cpf_donation_type": "N/A",
"cpf_additional_donation_type": "N/A",
"identification_issue_date": "",
"identification_expiry_date": "",
"spass_expiry_date": "01/01/2022",
"spass_issue_date": "01/01/2015",
"spass_dcs": "",
"epass_expiry_date": "",
"epass_issue_date": "",
"pr_status": "",
"pr_effective_date": "",
"pr_expiry_date": "",
"pepass_issue_date": "",
"pepass_expiry_date": "",
"wp_issue_date": "",
"wp_expiry_date": "",
"wp_worker_category": "",
"wp_dcs": "",
"wp_number": "",
"shg_override_amount": 0,
"letter_of_consent_issue_date": "",
"letter_of_consent_expiry_date": "",
"halal_certification_issue_date": "",
"halal_certification_expiry_date": "",
"hygiene_certification_issue_date": "",
"hygiene_certification_expiry_date": ""
},
"location_attributes": {
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": 12345,
"state": null,
"country_name": "Singapore"
},
"cost_centre_ids": [
12,
13
],
"next_of_kins_attributes": [
{
"name": "John Doe",
"relationship": "Father",
"birthdate": "01/01/2015",
"contact_number": 123456789,
"alternate_contact_number": 987654321,
"citizenship": "Singaporean",
"gender": "Male"
}
]
}
}
| Name | Description |
|---|---|
| invite_user | If true will create a talenox user for the employee and invite them |
| employee_id | Employee ID |
| first_name required | First name |
| last_name | Last name |
| chinese_name | Chinese name |
| nickname | Nickname |
| identification_full_name | Identification full name |
| email required | Email address |
| hired_date | Hired date |
| confirmation_date | Confirmation date |
| resign_date | Resign date |
| contact_number | Contact number |
| office_did | Office Direct Inward Dialing (DID) Number |
| ssn required | Identification number |
| ssn_should_validate | Should valdate identification number |
| citizenship required | Immigration status |
| nationality | Nationality |
| gender | Gender |
| race | Race |
| religion | Religion |
| marital_status | Marital status |
| birthdate | Birth date |
| passport_number | Passport number |
| passport_date_of_issue | Passport issue date |
| passport_date_of_expiry | Passport expiry date |
| passport_place_of_issue | Passport place of issue |
| vaccination_status | Vaccination status |
| vaccine_brand | Vaccine brand |
| date_of_first_dose | Date of first dose |
| date_of_second_dose | Date of second dose |
| vaccine_booster_brand | Vaccine booster brand |
| date_of_booster_dose | Date of second dose |
| vaccination_remarks | Vaccination remarks |
| payment_method required | Payment type |
| cost_centre_id | Default Cost centre ID (Same as default_cost_centre_id) |
| default_cost_centre_id | Default Cost centre ID (Set the company setting api_allows_employee_multiple_cost_centres to true to avoid resetting employee cost centres when changing default_cost_centre_id value) |
| cost_centre_ids | Cost centre IDs (to assign employee to multiple cost centres) |
| blood_group | Blood group |
| leaving_country | Leaving country |
| employee_attachment_access | Employee attachment access |
| accounting_split | Accounting split |
| employee_can_update_custom_fields | Employee can update custom fields |
| employee_attachment_access | Employee attachment access |
| reason_for_cessation | Reason for cessation |
| other_reason_for_cessation | Other reason for cessation |
| custom_fields | Custom fields |
| current_job_attributes | Below are Employee's Job related fields |
| title | Job title |
| department | Department |
| start_date | Job start date |
| end_date | Job end date |
| remarks | Remarks |
| rate_of_pay | Rate of pay |
| currency | Currency |
| amount | Basic pay amount |
| bank_account_parameters | Below are Employee's Bank Account related fields |
| bank_type | Bank name |
| bank_code | Bank code |
| account_name | Bank account name |
| number | Bank account number |
| branch_code | Branch code |
| branch_name | Branch name |
| swift_code | Bank swift code |
| payment_code | Payment code (Hang Seng and HSBC only) |
| dbs_company_id | DBS company ID (DBS only) |
| employee_using_cheque | Employee using cheque |
| location_parameters | Below are Employee's Address related fields |
| line_1 | Address line 1 |
| line_2 | Address line 2 |
| postal_code | Postal code |
| state | State |
| country_name | Country name |
| additional_sg_employee_info_parameters | Below are SG Employee's related fields |
| cpf_donation_type | SHG donation type |
| cpf_additional_donation_type | Additional SHG donation type |
| identification_expiry_date | Identification expiry date. When you use the API to update this field, we will map to the immigration expiry field. E.g. for Spass holders, we will map to spass_expiry_date. |
| identification_issue_date | Identification issue date. When you use the API to update this field, we will map to the immigration issue field. E.g. for Spass holders, we will map to spass_issue_date. |
| spass_expiry_date | S Pass expiry date |
| spass_issue_date | S Pass issue date |
| spass_dcs | S Pass Dependency Ceiling |
| epass_number | E Pass Number |
| epass_expiry_date | E Pass expiry date |
| epass_issue_date | E Pass issue date |
| pr_status | PR status |
| pr_effective_date | PR effective date |
| pr_expiry_date | PR expiry date |
| pepass_issue_date | PE Pass issue date |
| pepass_expiry_date | PE Pass expiry date |
| wp_expiry_date | Work Pass expiry date |
| wp_issue_date | Work Pass issue date |
| techpass_expiry_date | Tech Pass expiry date |
| techpass_issue_date | Tech Pass issue date |
| onepass_expiry_date | ONE Pass expiry date |
| onepass_issue_date | ONE Pass issue date |
| tep_expiry_date | Training Employment Pass (TEP) expiry date |
| tep_issue_date | Training Employment Pass (TEP) issue date |
| twp_expiry_date | Training Work Permit (TWP) expiry date |
| twp_issue_date | Training Work Permit (TWP) issue date |
| wp_worker_category | Work Pass worker category |
| wp_dcs | Work Pass dependency ceiling |
| wp_number | Work Pass Number |
| shg_automation_enabled | Infer SHG contribution fields from ["citizenship", "race", "religion"]. If passed true, you can omit both cpf_donation_type and cpf_additional_donation_type fields. If unable to determine, object will fail to save |
| shg_contribution_amount_option | SHG contribution amount option (["statutory_default", "custom_shg_amount"]) |
| shg_override_amount | Special cases where SHG needs to be overriden with CPF approval (For MBMF, use this field for auto splitting, or override Mosque Building and Mendaki amounts using the following two fields) |
| shg_mbmf_mbf_override_amount | Special cases where Mosque Building portion needs to be overriden with CPF approval (For MBMF custom amount only) |
| shg_mbmf_mendaki_override_amount | Special cases where Mendaki Portion needs to be overriden with CPF approval (For MBMF custom amount only) |
| letter_of_consent_expiry_date | Letter of consent expiry date |
| letter_of_consent_issue_date | Letter of consent issue date |
| preapproved_letter_of_consent_expiry_date | Pre-Approved Letter of consent expiry date |
| preapproved_letter_of_consent_issue_date | Pre-Approved Letter of consent issue date |
| halal_certification_issue_date | Halal certification issue date |
| halal_certification_expiry_date | Halal certification expiry date |
| hygiene_certification_issue_date | Hygiene certification issue date |
| hygiene_certification_expiry_date | Hygiene certification expiry date |
| additional_shg_contribution_amount_option | Additional SHG contribution amount option (["statutory_default", "custom_shg_amount"]) |
| additional_shg_override_amount | Additional SHG override amount |
| additional_shg_mbmf_mbf_override_amount | Additional SHG override - Mosque Building amount |
| additional_shg_mbmf_mendaki_override_amount | Additional SHG override - Mendaki amount |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1044,
"employee_id": "1",
"first_name": "Hafsah",
"middle_name": null,
"last_name": "Haigh",
"identification_full_name": "Hafsah Haigh",
"email": "test@gmail.com",
"payment_method": "Bank Transfer",
"hired_date": "2015-01-01",
"resign_date": null,
"confirmation_date": "2019-01-01",
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": "123456789",
"office_did": null,
"ssn": "S1111111D",
"ssn_should_validate": true,
"citizenship": "S Pass",
"nationality": "Chinese",
"gender": "Male",
"marital_status": "Single",
"passport_number": "MA123456",
"passport_date_of_issue": "2017-01-01",
"passport_date_of_expiry": "2022-12-01",
"passport_place_of_issue": "Singapore",
"chinese_name": "Xing Zexi",
"nickname": "Jerry",
"birthdate": "2015-01-01",
"slug": "hafsah-haigh-15f2b2f5",
"vaccination_status": "Fully Vaccinated",
"vaccine_brand": "Pfizer-BioNTech",
"date_of_first_dose": "2021-01-01",
"date_of_second_dose": "2021-11-01",
"vaccine_booster_brand": "Pfizer-BioNTech",
"date_of_booster_dose": "2021-12-01",
"vaccination_remarks": "",
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {
"Education": {
"CGPA": "4.00",
"University": "Example University"
}
},
"cost_centres": [
{
"id": 12,
"name": "Stamm Flat",
"employee_ids": [
1044
],
"no_of_employees": 1,
"enable_custom_cpf_csn": null,
"custom_cpf_csn": null,
"enable_custom_mpf": false,
"custom_mpf_employer_no": null,
"mpf_provider_id": null,
"custom_empf_scheme": null,
"custom_empf_payroll_group_name": null
},
{
"id": 13,
"name": "Markus Landing",
"employee_ids": [
1044
],
"no_of_employees": 1,
"enable_custom_cpf_csn": null,
"custom_cpf_csn": null,
"enable_custom_mpf": false,
"custom_mpf_employer_no": null,
"mpf_provider_id": null,
"custom_empf_scheme": null,
"custom_empf_payroll_group_name": null
}
],
"default_cost_centre": {
"id": 12,
"name": "Stamm Flat",
"employee_ids": [
1044
],
"no_of_employees": 1,
"enable_custom_cpf_csn": null,
"custom_cpf_csn": null,
"enable_custom_mpf": false,
"custom_mpf_employer_no": null,
"mpf_provider_id": null,
"custom_empf_scheme": null,
"custom_empf_payroll_group_name": null
},
"current_job": {
"id": 47,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 47,
"title": "Front-end Engineer",
"department": "Engineer",
"start_date": "01/01/2015",
"end_date": null,
"remarks": null,
"amount": "4000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [
{
"id": 1,
"employee_id": 1044,
"name": "John Doe",
"relationship": "Father",
"contact_number": "123456789",
"alternate_contact_number": "987654321",
"birthdate": "2015-01-01",
"gender": "Male",
"marriage_date": null,
"ssn": null,
"passport": null,
"citizenship": "Singaporean"
}
],
"bank_account": {
"id": 1199,
"bank_type": "DBS",
"bank_code": "1",
"branch_code": "1",
"branch_name": null,
"number": "131231231231231231",
"dbs_company_id": "",
"swift_code": "DBSSSGSGXXX",
"account_name": "Hafsah Haigh",
"payment_code": "1",
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1354,
"line_1": "Address Line 1",
"line_2": "Address Line 2",
"postal_code": "12345",
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "N/A",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": "2022-01-01",
"identification_issue_date": "2015-01-01",
"spass_expiry_date": "2022-01-01",
"spass_issue_date": "2015-01-01",
"spass_dcs": "",
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "",
"pr_effective_date": null,
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": "",
"wp_dcs": "",
"wp_number": "",
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": null,
"additional_uae_employee_info": null
}
Delete Employee
Request
Endpoint
DELETE https://api.talenox.com/api/v2/employees/:id
DELETE https://api.talenox.com/api/v2/employees/1061
Accept: application/json
Content-Type: application/json
Authorization: Bearer cc8e6528eb5b4d19efb0862520e0c330f4e1b267
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted employee 1061"
}
Get Employee
Request
Endpoint
GET https://api.talenox.com/api/v2/employees/:id
GET https://api.talenox.com/api/v2/employees/1054
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5845f4299dded19ce0790cf611fd62df495c7db1
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1054,
"employee_id": "00001",
"first_name": "Santo",
"middle_name": null,
"last_name": "Kulas",
"identification_full_name": "Kulas Santo",
"email": "bettina_krajcik@talenox.com",
"payment_method": "Bank Transfer",
"hired_date": "2025-08-20",
"resign_date": null,
"confirmation_date": null,
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": null,
"office_did": null,
"ssn": "S1234567D",
"ssn_should_validate": true,
"citizenship": "Singapore Citizen",
"nationality": null,
"gender": "Female",
"marital_status": null,
"passport_number": null,
"passport_date_of_issue": null,
"passport_date_of_expiry": null,
"passport_place_of_issue": null,
"chinese_name": null,
"nickname": null,
"birthdate": "2000-06-22",
"slug": "santo-kulas-dcb84c90",
"vaccination_status": null,
"vaccine_brand": null,
"date_of_first_dose": null,
"date_of_second_dose": null,
"vaccine_booster_brand": null,
"date_of_booster_dose": null,
"vaccination_remarks": null,
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 57,
"title": "Title1",
"department": null,
"start_date": "20/08/2025",
"end_date": null,
"remarks": null,
"amount": "5585.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 57,
"title": "Title1",
"department": null,
"start_date": "20/08/2025",
"end_date": null,
"remarks": null,
"amount": "5585.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1231,
"bank_type": null,
"bank_code": null,
"branch_code": null,
"branch_name": null,
"number": null,
"dbs_company_id": null,
"swift_code": null,
"account_name": "Kulas Santo",
"payment_code": null,
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1408,
"line_1": null,
"line_2": null,
"postal_code": null,
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "CDAC",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": null,
"identification_issue_date": null,
"spass_expiry_date": null,
"spass_issue_date": null,
"spass_dcs": null,
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "Graduated",
"pr_effective_date": "2026-06-22",
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": null,
"wp_dcs": null,
"wp_number": null,
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2025-08-20",
"ptkp": "TK/0",
"npwp": null,
"tax_scheme": "gross",
"previous_past_net": null,
"previous_past_tax": null,
"bpjs_tk_process_date": null,
"bpjs_tk_number": null,
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": null,
"bpjs_kesehatan_number": null,
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": null,
"bpjs_kesehatan_borne_by_employer": false,
"bpjs_tk_jht_borne_by_employer": false,
"bpjs_jp_borne_by_employer": false,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": null
},
"additional_uae_employee_info": null
}
List All Employees
Request
Endpoint
GET https://api.talenox.com/api/v2/employees
GET https://api.talenox.com/api/v2/employees
Accept: application/json
Content-Type: application/json
Authorization: Bearer 66183bf20c65424abc2539e7da7c41d93547dc98
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 1048,
"employee_id": "00001",
"first_name": "Keitha",
"middle_name": null,
"last_name": "Hermiston",
"identification_full_name": "Hermiston Keitha",
"email": "alonzo_christiansen@talenox.com",
"payment_method": "Bank Transfer",
"hired_date": "2025-11-24",
"resign_date": null,
"confirmation_date": null,
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": null,
"office_did": null,
"ssn": "S1234567D",
"ssn_should_validate": true,
"citizenship": "Singapore Citizen",
"nationality": null,
"gender": "Male",
"marital_status": null,
"passport_number": null,
"passport_date_of_issue": null,
"passport_date_of_expiry": null,
"passport_place_of_issue": null,
"chinese_name": null,
"nickname": null,
"birthdate": "1989-06-22",
"slug": "keitha-hermiston-8892c316",
"vaccination_status": null,
"vaccine_brand": null,
"date_of_first_dose": null,
"date_of_second_dose": null,
"vaccine_booster_brand": null,
"date_of_booster_dose": null,
"vaccination_remarks": null,
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 51,
"title": "Title1",
"department": null,
"start_date": "24/11/2025",
"end_date": null,
"remarks": null,
"amount": "4373.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 51,
"title": "Title1",
"department": null,
"start_date": "24/11/2025",
"end_date": null,
"remarks": null,
"amount": "4373.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1217,
"bank_type": null,
"bank_code": null,
"branch_code": null,
"branch_name": null,
"number": null,
"dbs_company_id": null,
"swift_code": null,
"account_name": "Hermiston Keitha",
"payment_code": null,
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1386,
"line_1": null,
"line_2": null,
"postal_code": null,
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "CDAC",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": null,
"identification_issue_date": null,
"spass_expiry_date": null,
"spass_issue_date": null,
"spass_dcs": null,
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "Graduated",
"pr_effective_date": "2026-06-22",
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": null,
"wp_dcs": null,
"wp_number": null,
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2025-11-24",
"ptkp": "TK/0",
"npwp": null,
"tax_scheme": "gross",
"previous_past_net": null,
"previous_past_tax": null,
"bpjs_tk_process_date": null,
"bpjs_tk_number": null,
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": null,
"bpjs_kesehatan_number": null,
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": null,
"bpjs_kesehatan_borne_by_employer": false,
"bpjs_tk_jht_borne_by_employer": false,
"bpjs_jp_borne_by_employer": false,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": null
},
"additional_uae_employee_info": null
},
{
"id": 1049,
"employee_id": "00002",
"first_name": "Marget",
"middle_name": null,
"last_name": "Donnelly",
"identification_full_name": "Donnelly Marget",
"email": "liza@talenox.com",
"payment_method": "Bank Transfer",
"hired_date": "2025-11-01",
"resign_date": null,
"confirmation_date": null,
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": null,
"office_did": null,
"ssn": "S1234567D",
"ssn_should_validate": true,
"citizenship": "Singapore Citizen",
"nationality": null,
"gender": "Male",
"marital_status": null,
"passport_number": null,
"passport_date_of_issue": null,
"passport_date_of_expiry": null,
"passport_place_of_issue": null,
"chinese_name": null,
"nickname": null,
"birthdate": "1983-06-22",
"slug": "marget-donnelly-50c9dc56",
"vaccination_status": null,
"vaccine_brand": null,
"date_of_first_dose": null,
"date_of_second_dose": null,
"vaccine_booster_brand": null,
"date_of_booster_dose": null,
"vaccination_remarks": null,
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 52,
"title": "Title1",
"department": null,
"start_date": "01/11/2025",
"end_date": null,
"remarks": null,
"amount": "4081.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 52,
"title": "Title1",
"department": null,
"start_date": "01/11/2025",
"end_date": null,
"remarks": null,
"amount": "4081.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1219,
"bank_type": null,
"bank_code": null,
"branch_code": null,
"branch_name": null,
"number": null,
"dbs_company_id": null,
"swift_code": null,
"account_name": "Donnelly Marget",
"payment_code": null,
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1389,
"line_1": null,
"line_2": null,
"postal_code": null,
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "CDAC",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": null,
"identification_issue_date": null,
"spass_expiry_date": null,
"spass_issue_date": null,
"spass_dcs": null,
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "Graduated",
"pr_effective_date": "2026-06-22",
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": null,
"wp_dcs": null,
"wp_number": null,
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2025-11-01",
"ptkp": "TK/0",
"npwp": null,
"tax_scheme": "gross",
"previous_past_net": null,
"previous_past_tax": null,
"bpjs_tk_process_date": null,
"bpjs_tk_number": null,
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": null,
"bpjs_kesehatan_number": null,
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": null,
"bpjs_kesehatan_borne_by_employer": false,
"bpjs_tk_jht_borne_by_employer": false,
"bpjs_jp_borne_by_employer": false,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": null
},
"additional_uae_employee_info": null
},
{
"id": 1050,
"employee_id": "00003",
"first_name": "Han",
"middle_name": null,
"last_name": "Zulauf",
"identification_full_name": "Zulauf Han",
"email": "chi.kilback@talenox.com",
"payment_method": "Bank Transfer",
"hired_date": "2025-07-22",
"resign_date": null,
"confirmation_date": null,
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": null,
"office_did": null,
"ssn": "S1234567D",
"ssn_should_validate": true,
"citizenship": "Singapore Citizen",
"nationality": null,
"gender": "Female",
"marital_status": null,
"passport_number": null,
"passport_date_of_issue": null,
"passport_date_of_expiry": null,
"passport_place_of_issue": null,
"chinese_name": null,
"nickname": null,
"birthdate": "1991-06-22",
"slug": "han-zulauf-1939d27d",
"vaccination_status": null,
"vaccine_brand": null,
"date_of_first_dose": null,
"date_of_second_dose": null,
"vaccine_booster_brand": null,
"date_of_booster_dose": null,
"vaccination_remarks": null,
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 53,
"title": "Title1",
"department": null,
"start_date": "22/07/2025",
"end_date": null,
"remarks": null,
"amount": "1864.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 53,
"title": "Title1",
"department": null,
"start_date": "22/07/2025",
"end_date": null,
"remarks": null,
"amount": "1864.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1221,
"bank_type": null,
"bank_code": null,
"branch_code": null,
"branch_name": null,
"number": null,
"dbs_company_id": null,
"swift_code": null,
"account_name": "Zulauf Han",
"payment_code": null,
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1392,
"line_1": null,
"line_2": null,
"postal_code": null,
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "CDAC",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": null,
"identification_issue_date": null,
"spass_expiry_date": null,
"spass_issue_date": null,
"spass_dcs": null,
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "Graduated",
"pr_effective_date": "2026-06-22",
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": null,
"wp_dcs": null,
"wp_number": null,
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2025-07-22",
"ptkp": "TK/0",
"npwp": null,
"tax_scheme": "gross",
"previous_past_net": null,
"previous_past_tax": null,
"bpjs_tk_process_date": null,
"bpjs_tk_number": null,
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": null,
"bpjs_kesehatan_number": null,
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": null,
"bpjs_kesehatan_borne_by_employer": false,
"bpjs_tk_jht_borne_by_employer": false,
"bpjs_jp_borne_by_employer": false,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": null
},
"additional_uae_employee_info": null
}
]
Update Employee
Request
Endpoint
PUT https://api.talenox.com/api/v2/employees/:id
PUT https://api.talenox.com/api/v2/employees/1057
Accept: application/json
Content-Type: application/json
Authorization: Bearer e491bdb47d12db33cd374ef073d254a6a75dc01a
Parameters
{
"employee": {
"first_name": "Mary",
"last_name": "Lan"
}
}
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1057,
"employee_id": "00001",
"first_name": "Mary",
"middle_name": null,
"last_name": "Lan",
"identification_full_name": "Paucek Erika",
"email": "peter@talenox.com",
"payment_method": "Bank Transfer",
"hired_date": "2025-11-26",
"resign_date": null,
"confirmation_date": null,
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": null,
"office_did": null,
"ssn": "S1234567D",
"ssn_should_validate": true,
"citizenship": "Singapore Citizen",
"nationality": null,
"gender": "Male",
"marital_status": null,
"passport_number": null,
"passport_date_of_issue": null,
"passport_date_of_expiry": null,
"passport_place_of_issue": null,
"chinese_name": null,
"nickname": null,
"birthdate": "2003-06-22",
"slug": "mary-lan-676db5e9",
"vaccination_status": null,
"vaccine_brand": null,
"date_of_first_dose": null,
"date_of_second_dose": null,
"vaccine_booster_brand": null,
"date_of_booster_dose": null,
"vaccination_remarks": null,
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 60,
"title": "Title1",
"department": null,
"start_date": "26/11/2025",
"end_date": null,
"remarks": null,
"amount": "2610.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 60,
"title": "Title1",
"department": null,
"start_date": "26/11/2025",
"end_date": null,
"remarks": null,
"amount": "2610.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1239,
"bank_type": null,
"bank_code": null,
"branch_code": null,
"branch_name": null,
"number": null,
"dbs_company_id": null,
"swift_code": null,
"account_name": "Paucek Erika",
"payment_code": null,
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1421,
"line_1": null,
"line_2": null,
"postal_code": null,
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "CDAC",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": null,
"identification_issue_date": null,
"spass_expiry_date": null,
"spass_issue_date": null,
"spass_dcs": null,
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "Graduated",
"pr_effective_date": "2026-06-22",
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": null,
"wp_dcs": null,
"wp_number": null,
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2025-11-26",
"ptkp": "TK/0",
"npwp": null,
"tax_scheme": "gross",
"previous_past_net": null,
"previous_past_tax": null,
"bpjs_tk_process_date": null,
"bpjs_tk_number": null,
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": null,
"bpjs_kesehatan_number": null,
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": null,
"bpjs_kesehatan_borne_by_employer": false,
"bpjs_tk_jht_borne_by_employer": false,
"bpjs_jp_borne_by_employer": false,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": null
},
"additional_uae_employee_info": null
}
Update Employee identification_full_name
Request
Endpoint
PUT https://api.talenox.com/api/v2/employees/:id
PUT https://api.talenox.com/api/v2/employees/1058
Accept: application/json
Content-Type: application/json
Authorization: Bearer b393cc2417ffb96178251288efe88aa3f2aa8040
Parameters
{
"employee": {
"identification_full_name": "John Michael Smith"
}
}
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 1058,
"employee_id": "00001",
"first_name": "Lavonne",
"middle_name": null,
"last_name": "Hahn",
"identification_full_name": "John Michael Smith",
"email": "benita.mcclure@talenox.com",
"payment_method": "Bank Transfer",
"hired_date": "2025-10-04",
"resign_date": null,
"confirmation_date": null,
"leaving_country": false,
"race": null,
"religion": null,
"blood_group": null,
"contact_number": null,
"office_did": null,
"ssn": "S1234567D",
"ssn_should_validate": true,
"citizenship": "Singapore Citizen",
"nationality": null,
"gender": "Female",
"marital_status": null,
"passport_number": null,
"passport_date_of_issue": null,
"passport_date_of_expiry": null,
"passport_place_of_issue": null,
"chinese_name": null,
"nickname": null,
"birthdate": "2003-06-22",
"slug": "lavonne-hahn-cf010938",
"vaccination_status": null,
"vaccine_brand": null,
"date_of_first_dose": null,
"date_of_second_dose": null,
"vaccine_booster_brand": null,
"date_of_booster_dose": null,
"vaccination_remarks": null,
"employee_attachment_access": "hidden",
"accounting_split": "employee",
"employee_can_update_custom_fields": false,
"reason_for_cessation": null,
"other_reason_for_cessation": null,
"custom_fields": {},
"cost_centres": [],
"default_cost_centre": null,
"current_job": {
"id": 61,
"title": "Title1",
"department": null,
"start_date": "04/10/2025",
"end_date": null,
"remarks": null,
"amount": "1832.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
},
"jobs": [
{
"id": 61,
"title": "Title1",
"department": null,
"start_date": "04/10/2025",
"end_date": null,
"remarks": null,
"amount": "1832.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"next_of_kins": [],
"bank_account": {
"id": 1242,
"bank_type": null,
"bank_code": null,
"branch_code": null,
"branch_name": null,
"number": null,
"dbs_company_id": null,
"swift_code": null,
"account_name": "Hahn Lavonne",
"payment_code": null,
"bnm_code": "",
"organization_code": "",
"boa_company_id": null,
"boa_eft_key": null,
"hsbc_account": "standalone_account",
"hsbc_account_type": null
},
"location": {
"id": 1426,
"line_1": null,
"line_2": null,
"postal_code": null,
"state": null,
"country_name": "Singapore",
"block_house_no": null,
"street_name": null,
"level_no": null,
"unit_no": null,
"line_3": null
},
"additional_hk_employee_info": null,
"additional_sg_employee_info": {
"cpf_donation_type": "CDAC",
"cpf_additional_donation_type": "N/A",
"identification_expiry_date": null,
"identification_issue_date": null,
"spass_expiry_date": null,
"spass_issue_date": null,
"spass_dcs": null,
"epass_expiry_date": null,
"epass_issue_date": null,
"pr_status": "Graduated",
"pr_effective_date": "2026-06-22",
"pr_expiry_date": null,
"wp_issue_date": null,
"wp_expiry_date": null,
"wp_worker_category": null,
"wp_dcs": null,
"wp_number": null,
"shg_override_amount": "0.0",
"letter_of_consent_issue_date": null,
"letter_of_consent_expiry_date": null,
"pepass_issue_date": null,
"pepass_expiry_date": null,
"halal_certification_issue_date": null,
"halal_certification_expiry_date": null,
"hygiene_certification_issue_date": null,
"hygiene_certification_expiry_date": null,
"techpass_issue_date": null,
"techpass_expiry_date": null,
"onepass_issue_date": null,
"onepass_expiry_date": null,
"tep_issue_date": null,
"tep_expiry_date": null,
"twp_issue_date": null,
"twp_expiry_date": null,
"preapproved_letter_of_consent_issue_date": null,
"preapproved_letter_of_consent_expiry_date": null
},
"additional_my_employee_info": null,
"additional_id_employee_info": {
"tax_processing_date": "2025-10-04",
"ptkp": "TK/0",
"npwp": null,
"tax_scheme": "gross",
"previous_past_net": null,
"previous_past_tax": null,
"bpjs_tk_process_date": null,
"bpjs_tk_number": null,
"bpjs_tk_policy": "registered",
"work_accident_insurance_contribution_rate": "0.24%",
"bpjs_kesehatan_process_date": null,
"bpjs_kesehatan_number": null,
"bpjs_kesehatan_policy": "registered",
"no_of_bpjs_kesehatan_dependents": null,
"bpjs_kesehatan_borne_by_employer": false,
"bpjs_tk_jht_borne_by_employer": false,
"bpjs_jp_borne_by_employer": false,
"bpjs_jkm_policy": "registered",
"bpjs_jp_policy": "registered",
"bpjs_tk_jht_policy": "registered",
"previous_past_net_tax_effective_date": null
},
"additional_uae_employee_info": null
}
Holiday Policies
Holiday policies allow management of public and statutory holidays for companies. They can be created and assigned to employees based in different countries, and customized per company requirements.
Create Holiday Policy
Request
Endpoint
POST https://api.talenox.com/api/v2/holiday_policies
POST https://api.talenox.com/api/v2/holiday_policies
Accept: application/json
Content-Type: application/json
Authorization: Bearer 8447b1fca9fedc9174e7120a02830ebd17fcde01
Parameters
{
"name": "New Holiday Policy",
"country_id": 2,
"description": "Test holiday policy"
}
| Name | Description |
|---|---|
| name required | Name of the holiday policy |
| country_id | Country ID for the policy |
| state_id | State/Region ID for the policy |
| description | Description of the policy |
| employee_ids | Array of employee IDs to assign to this policy |
Response
content-type: application/json; charset=utf-8
201 Created
{
"id": 242,
"name": "New Holiday Policy",
"is_default": false,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "Test holiday policy",
"created_at": "2026-06-22T03:20:58.280Z",
"updated_at": "2026-06-22T03:20:58.280Z"
}
Delete Holiday Policy
Request
Endpoint
DELETE https://api.talenox.com/api/v2/holiday_policies/:id
DELETE https://api.talenox.com/api/v2/holiday_policies/254
Accept: application/json
Content-Type: application/json
Authorization: Bearer fb701e342982ed1e83c6bdbaa6ae2f4b506f5198
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "holiday policy deleted successfully",
"timestamp": "2026-06-22T11:21:28.478+08:00"
}
Delete Holiday Policy Modification
Request
Endpoint
DELETE https://api.talenox.com/api/v2/holiday_policies/:id/modifications
DELETE https://api.talenox.com/api/v2/holiday_policies/265/modifications
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4cdb77d9d724f586b7314d38073237214f0c362c
Parameters
{
"holiday_date": "2026-06-22"
}
| Name | Description |
|---|---|
| holiday_date required | Holiday date to delete modification for (YYYY-MM-DD) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "holiday policy modification deleted successfully",
"holiday_date": "2026-06-22",
"timestamp": "2026-06-22T11:21:52.098+08:00"
}
Get Calendar Events by Default Holiday Policy
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/company_holidays
GET https://api.talenox.com/api/v2/holiday_policies/company_holidays?year=2026&show_inactive=false
Accept: application/json
Content-Type: application/json
Authorization: Bearer ee58b1d5f0a3a8752a74712e8e93b0d14892ca85
Parameters
year: 2026
show_inactive: false
| Name | Description |
|---|---|
| company_id | Company ID (defaults to current user's company) |
| year | Year to fetch holidays for |
| show_inactive | Include inactive holidays |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"holiday_date": "2026-06-22",
"name": "Company Custom Holiday",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "user"
},
{
"holiday_date": "2026-06-23",
"name": "Company Custom Holiday",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "user"
}
]
Get Calendar Events for Holiday Policy
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/:id
GET https://api.talenox.com/api/v2/holiday_policies/244?start_at=2026-01-01&end_at=2026-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer ec3f459e955de58fefe53fadcce2f8693f0dfc55
Parameters
start_at: 2026-01-01
end_at: 2026-12-31
| Name | Description |
|---|---|
| start_at required | Start date (YYYY-MM-DD) |
| end_at required | End date (YYYY-MM-DD) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 244,
"name": "Custom Policy",
"is_default": false,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "A test holiday policy",
"created_at": "2026-06-22T03:21:03.960Z",
"updated_at": "2026-06-22T03:21:03.960Z",
"calendar_events": [
{
"holiday_date": "2026-06-22",
"name": "New Year Day",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "api_subscription"
}
]
}
Get Calendar Events including inactive holidays
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/company_holidays
GET https://api.talenox.com/api/v2/holiday_policies/company_holidays?year=2026&show_inactive=true
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3891c7ab893a560295e5788f2822c63d5afbb029
Parameters
year: 2026
show_inactive: true
| Name | Description |
|---|---|
| company_id | Company ID (defaults to current user's company) |
| year | Year to fetch holidays for |
| show_inactive | Include inactive holidays |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"holiday_date": "2026-06-22",
"name": "Company Custom Holiday",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "user"
},
{
"holiday_date": "2026-06-23",
"name": "Company Custom Holiday",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "user"
}
]
Get Countries
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/countries
GET https://api.talenox.com/api/v2/holiday_policies/countries
Accept: application/json
Content-Type: application/json
Authorization: Bearer 959f934ce9312f5fc7ae8adfd43ce857d74fba76
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 18,
"name": "Australia",
"country_code": "AU"
},
{
"id": 27,
"name": "Bhutan",
"country_code": "BT"
},
{
"id": 26,
"name": "British Virgin Islands",
"country_code": "VG"
},
{
"id": 11,
"name": "Brunei",
"country_code": "BN"
},
{
"id": 16,
"name": "Cambodia",
"country_code": "KH"
},
{
"id": 7,
"name": "Canada",
"country_code": "CA"
},
{
"id": 24,
"name": "Cayman Islands",
"country_code": "KY"
},
{
"id": 12,
"name": "China",
"country_code": "CN"
},
{
"id": 99,
"name": "France",
"country_code": "FR"
},
{
"id": 28,
"name": "Germany",
"country_code": "DE"
},
{
"id": 23,
"name": "Global",
"country_code": "ZZ"
},
{
"id": 3,
"name": "Hong Kong",
"country_code": "HK"
},
{
"id": 17,
"name": "India",
"country_code": "IN"
},
{
"id": 10,
"name": "Indonesia",
"country_code": "ID"
},
{
"id": 129,
"name": "Ireland",
"country_code": "IE"
},
{
"id": 19,
"name": "Japan",
"country_code": "JP"
},
{
"id": 25,
"name": "Macau",
"country_code": "MO"
},
{
"id": 4,
"name": "Malaysia",
"country_code": "MY"
},
{
"id": 160,
"name": "Marshall Islands",
"country_code": "MH"
},
{
"id": 170,
"name": "Mongolia",
"country_code": "MN"
},
{
"id": 13,
"name": "Myanmar",
"country_code": "MM"
},
{
"id": 20,
"name": "Pakistan",
"country_code": "PK"
},
{
"id": 14,
"name": "Philippines",
"country_code": "PH"
},
{
"id": 1,
"name": "Qatar",
"country_code": "QA"
},
{
"id": 2,
"name": "Singapore",
"country_code": "SG"
},
{
"id": 22,
"name": "South Africa",
"country_code": "ZA"
},
{
"id": 238,
"name": "Switzerland",
"country_code": "CH"
},
{
"id": 15,
"name": "Taiwan",
"country_code": "TW"
},
{
"id": 6,
"name": "Thailand",
"country_code": "TH"
},
{
"id": 21,
"name": "United Arab Emirates",
"country_code": "AE"
},
{
"id": 8,
"name": "United Kingdom",
"country_code": "GB"
},
{
"id": 5,
"name": "United States",
"country_code": "US"
},
{
"id": 257,
"name": "Vanuatu",
"country_code": "VU"
},
{
"id": 9,
"name": "Vietnam",
"country_code": "VN"
}
]
Get Country Holidays by Country Code
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/country_holidays
GET https://api.talenox.com/api/v2/holiday_policies/country_holidays?country_code=SG&start_at=2026-01-01&end_at=2026-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5a089949b3d36e5cee81394f1bee5e0fc001c93c
Parameters
country_code: SG
start_at: 2026-01-01
end_at: 2026-12-31
| Name | Description |
|---|---|
| country_id | Country ID to get holidays for |
| country_code | Country code to get holidays for (alternative to country_id) |
| state_id | State/Region ID for regional holidays |
| start_at required | Start date (YYYY-MM-DD) |
| end_at required | End date (YYYY-MM-DD) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"holiday_date": "2026-06-22",
"name": "New Year Day",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "api_subscription"
}
]
Get Country Holidays by Country ID
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/country_holidays
GET https://api.talenox.com/api/v2/holiday_policies/country_holidays?country_id=2&start_at=2026-01-01&end_at=2026-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer 456c20d10ac0a49104ac486dc03163a5a6c15081
Parameters
country_id: 2
start_at: 2026-01-01
end_at: 2026-12-31
| Name | Description |
|---|---|
| country_id | Country ID to get holidays for |
| country_code | Country code to get holidays for (alternative to country_id) |
| state_id | State/Region ID for regional holidays |
| start_at required | Start date (YYYY-MM-DD) |
| end_at required | End date (YYYY-MM-DD) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"holiday_date": "2026-06-22",
"name": "New Year Day",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "api_subscription"
}
]
Get Country Holidays with State Filter
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/country_holidays
GET https://api.talenox.com/api/v2/holiday_policies/country_holidays?country_id=4&state_id=14&start_at=2026-01-01&end_at=2026-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7f035e1259378729e8c500adfd65457568ed807f
Parameters
country_id: 4
state_id: 14
start_at: 2026-01-01
end_at: 2026-12-31
| Name | Description |
|---|---|
| country_id | Country ID to get holidays for |
| country_code | Country code to get holidays for (alternative to country_id) |
| state_id | State/Region ID for regional holidays |
| start_at required | Start date (YYYY-MM-DD) |
| end_at required | End date (YYYY-MM-DD) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"holiday_date": "2026-06-22",
"name": "State Holiday",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true,
"holiday_source": "api_subscription"
}
]
Get States for Country
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies/states
GET https://api.talenox.com/api/v2/holiday_policies/states?country_id=1
Accept: application/json
Content-Type: application/json
Authorization: Bearer 13f839cb2a47afc4d48d55cb920e1e37257bd458
Parameters
country_id: 1
| Name | Description |
|---|---|
| country_id required | Country ID to get states for |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 1,
"name": "Ad Dawhah"
},
{
"id": 2,
"name": "Al Ghuwayriyah"
},
{
"id": 3,
"name": "Al Jumayliyah"
},
{
"id": 4,
"name": "Al Khawr"
},
{
"id": 5,
"name": "Al Wakrah"
},
{
"id": 6,
"name": "Ar Rayyan"
},
{
"id": 7,
"name": "Jarayan al Batinah"
},
{
"id": 8,
"name": "Madinat ash Shamal"
},
{
"id": 9,
"name": "Umm Sa'id"
},
{
"id": 10,
"name": "Umm Salal"
}
]
List Holiday Policies
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies
GET https://api.talenox.com/api/v2/holiday_policies
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6787bd4f12a0fc613d0ec5871e6e8750cc3e55ef
Parameters
| Name | Description |
|---|---|
| last_seen_id | ID of the last holiday policy seen for pagination |
| limit | Number of results to return (max 50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 234,
"name": "Test Holiday Policy",
"is_default": true,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "A test holiday policy",
"created_at": "2026-06-22T03:20:44.893Z",
"updated_at": "2026-06-22T03:20:47.318Z"
},
{
"id": 235,
"name": "Custom Policy",
"is_default": false,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "A test holiday policy",
"created_at": "2026-06-22T03:20:47.255Z",
"updated_at": "2026-06-22T03:20:47.255Z"
}
]
List Holiday Policies with custom limit
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies
GET https://api.talenox.com/api/v2/holiday_policies?limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer 82714da7b429df65132f7967b62e122385329334
Parameters
limit: 5
| Name | Description |
|---|---|
| last_seen_id | ID of the last holiday policy seen for pagination |
| limit | Number of results to return (max 50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 238,
"name": "Test Holiday Policy",
"is_default": true,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "A test holiday policy",
"created_at": "2026-06-22T03:20:52.041Z",
"updated_at": "2026-06-22T03:20:54.356Z"
},
{
"id": 239,
"name": "Custom Policy",
"is_default": false,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "A test holiday policy",
"created_at": "2026-06-22T03:20:54.308Z",
"updated_at": "2026-06-22T03:20:54.308Z"
}
]
List Holiday Policies with pagination
Request
Endpoint
GET https://api.talenox.com/api/v2/holiday_policies
GET https://api.talenox.com/api/v2/holiday_policies?last_seen_id=236&limit=20
Accept: application/json
Content-Type: application/json
Authorization: Bearer d533d8192b8848af2836702fbc8a52db00891f0f
Parameters
last_seen_id: 236
limit: 20
| Name | Description |
|---|---|
| last_seen_id | ID of the last holiday policy seen for pagination |
| limit | Number of results to return (max 50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 237,
"name": "Custom Policy",
"is_default": false,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "A test holiday policy",
"created_at": "2026-06-22T03:20:50.747Z",
"updated_at": "2026-06-22T03:20:50.747Z"
}
]
Update Holiday Policy
Request
Endpoint
PUT https://api.talenox.com/api/v2/holiday_policies/:id
PUT https://api.talenox.com/api/v2/holiday_policies/250
Accept: application/json
Content-Type: application/json
Authorization: Bearer 279e2af4728ef91652cc1a6f14a512994219793b
Parameters
{
"name": "Updated Policy Name",
"description": "Updated description"
}
| Name | Description |
|---|---|
| name | Name of the holiday policy |
| country_id | Country ID for the policy |
| state_id | State/Region ID for the policy |
| description | Description of the policy |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 250,
"name": "Updated Policy Name",
"is_default": false,
"country_id": 2,
"country_name": "Singapore",
"country_code": "SG",
"state_id": null,
"state_name": null,
"description": "Updated description",
"created_at": "2026-06-22T03:21:14.905Z",
"updated_at": "2026-06-22T03:21:15.006Z"
}
Upsert Holiday Policy Modification
Request
Endpoint
POST https://api.talenox.com/api/v2/holiday_policies/:id/modifications
POST https://api.talenox.com/api/v2/holiday_policies/259/modifications
Accept: application/json
Content-Type: application/json
Authorization: Bearer f81193939f1abf0da8893d83a27be2baa18abbc8
Parameters
{
"holiday_date": "2024-06-15",
"name": "Custom Holiday",
"duration": "all_day",
"is_active": true,
"holiday_type": "public_holiday"
}
| Name | Description |
|---|---|
| holiday_date required | Holiday date (YYYY-MM-DD) |
| name required | Name of the holiday |
| duration required | Duration of holiday (all_day, first_half_of_day, second_half_of_day) |
| is_active required | Whether the holiday is active |
| holiday_type | Type of holiday (public_holiday, statutory_holiday) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "holiday policy modification upserted successfully",
"modification": {
"holiday_date": "2024-06-15",
"name": "Custom Holiday",
"duration": "all_day",
"holiday_type": "public_holiday",
"is_active": true
},
"timestamp": "2026-06-22T11:21:40.672+08:00"
}
Jobs
Create Job
Request
Endpoint
POST https://api.talenox.com/api/v2/jobs
POST https://api.talenox.com/api/v2/jobs
Accept: application/json
Content-Type: application/json
Authorization: Bearer 2c2e37e248a06c80310d5d3ffcec37e5fc986182
Parameters
{
"title": "",
"employee_id": 1447,
"job": {
"title": "Testing job",
"department": "Testing Department",
"start_date": "03/05/2019",
"end_date": "31/05/2020",
"currency": "SGD",
"amount": 1000,
"rate_of_pay": "Monthly",
"remarks": "Testing remark"
}
}
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| title | Job Title |
| department | Job Department |
| start_date required | Job Start Date |
| end_date required | Job End Date |
| rate_of_pay | Rate of pay |
| amount | Basic pay amount |
| currency | Currency |
| remarks | Job Remarks |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 85,
"title": "Testing job",
"department": "Testing Department",
"start_date": "03/05/2019",
"end_date": "31/05/2020",
"remarks": "Testing remark",
"amount": "1000.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
Delete Job
Request
Endpoint
DELETE https://api.talenox.com/api/v2/jobs/:id
DELETE https://api.talenox.com/api/v2/jobs/91
Accept: application/json
Content-Type: application/json
Authorization: Bearer a38820576d40eb4b4ee907465ef4588b04853645
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted job 91"
}
Get Job
Request
Endpoint
GET https://api.talenox.com/api/v2/jobs/:id
GET https://api.talenox.com/api/v2/jobs/88
Accept: application/json
Content-Type: application/json
Authorization: Bearer e7736f4d7d88bcff2d1c82151b548d7d45058399
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 88,
"title": "Title1",
"department": null,
"start_date": "22/06/2026",
"end_date": null,
"remarks": null,
"amount": "2697.0",
"rate_of_pay": "Monthly",
"currency": "SGD"
}
Update Job
Request
Endpoint
PUT https://api.talenox.com/api/v2/jobs/:id
PUT https://api.talenox.com/api/v2/jobs/89
Accept: application/json
Content-Type: application/json
Authorization: Bearer 323532086529c25b91e99b3519b38e0c84fa8179
Parameters
{
"job": {
"title": "Updated job",
"department": "Updated Department",
"currency": "HKD",
"start_date": "01/01/2017",
"end_date": "03/01/2019",
"amount": 2000,
"rate_of_pay": "Daily"
}
}
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 89,
"title": "Updated job",
"department": "Updated Department",
"start_date": "01/01/2017",
"end_date": "03/01/2019",
"remarks": null,
"amount": "2000.0",
"rate_of_pay": "Daily",
"currency": "HKD"
}
Leave
List All Leave Applications
Request
Endpoint
GET https://api.talenox.com/api/v2/leave?
GET https://api.talenox.com/api/v2/leave??employee_ids[]=1624
Accept: application/json
Content-Type: application/json
Authorization: Bearer d1835daa2d8f623219dbe08755d4c5de32912f9d
Parameters
?employee_ids: ["1624"]
| Name | Description |
|---|---|
| employee_ids required | Employee IDs |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 61,
"leave_type": "Annual Leave",
"company_id": 421,
"employee_id": 1624,
"amount_type": "day",
"amount": "1.0",
"remarks": null,
"total_non_working_days": "0.0",
"start_at": "2026-06-22",
"start_date_which_half": "AM",
"end_at": "2026-06-22",
"end_date_which_half": "PM",
"is_single_day": true,
"status": "pending",
"derived_duration_listing": [
{
"working_day_type": "Working Full Day",
"date": "2026-06-22",
"leave_duration_type": "All Day",
"derived_duration_qty": 1
}
],
"number_of_levels": 1,
"approvers": [],
"admin_approver": null
},
{
"id": 62,
"leave_type": "Annual Leave",
"company_id": 421,
"employee_id": 1624,
"amount_type": "day",
"amount": "1.0",
"remarks": null,
"total_non_working_days": "0.0",
"start_at": "2026-06-22",
"start_date_which_half": "AM",
"end_at": "2026-06-22",
"end_date_which_half": "PM",
"is_single_day": true,
"status": "pending",
"derived_duration_listing": [
{
"working_day_type": "Working Full Day",
"date": "2026-06-22",
"leave_duration_type": "All Day",
"derived_duration_qty": 1
}
],
"number_of_levels": 1,
"approvers": [],
"admin_approver": null
},
{
"id": 63,
"leave_type": "Annual Leave",
"company_id": 421,
"employee_id": 1624,
"amount_type": "day",
"amount": "1.0",
"remarks": null,
"total_non_working_days": "0.0",
"start_at": "2026-06-22",
"start_date_which_half": "AM",
"end_at": "2026-06-22",
"end_date_which_half": "PM",
"is_single_day": true,
"status": "pending",
"derived_duration_listing": [
{
"working_day_type": "Working Full Day",
"date": "2026-06-22",
"leave_duration_type": "All Day",
"derived_duration_qty": 1
}
],
"number_of_levels": 1,
"approvers": [],
"admin_approver": null
}
]
Leave Applications (BETA)
Approve leave
This approves a pending leave application
Request
Endpoint
PATCH https://api.talenox.com/api/v2/leave_beta/applications/approve/:id
PATCH https://api.talenox.com/api/v2/leave_beta/applications/approve/21
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 21,
"timestamp": "2026-06-22T11:24:08.489+08:00"
}
Create leave application
Request
Endpoint
POST https://api.talenox.com/api/v2/leave_beta/applications
POST https://api.talenox.com/api/v2/leave_beta/applications
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
{
"employee_id": 1531,
"category_id": 81,
"category": "type",
"start_date": "2026-06-01",
"end_date": "2026-06-01",
"remarks": "test",
"working_days": [
{
"date": "2026-06-01",
"type": "full_day"
}
],
"applied_durations": [
{
"date": "2026-06-01",
"type": "full_day"
}
],
"approvers": [
{
"approver_id": 1541,
"level": 1
}
]
}
| Name | Description |
|---|---|
| approver_id required | Employee ID |
| category required | 'type' or 'oil' |
| employee_id required | Employee ID |
| applied_durations | json array of duration json object with date (YYYY-MM-DD) and type as attributes. type must be 'full_day', 'first_half' or 'second_half'. See Leave Application flow for details |
| working_days | json array of working_day json object with date (YYYY-MM-DD) and type as attributes. type must be 'full_day', 'first_half', 'second_half', 'holiday' or 'not_working' |
| category_id | Leave Type ID for 'type' category, Off In Lieu ID for 'oil' category |
Response
content-type: application/json; charset=utf-8
200 OK
{
"leave_application_id": 20
}
Delete leave application
Request
Endpoint
DELETE https://api.talenox.com/api/v2/leave_beta/applications/:id
DELETE https://api.talenox.com/api/v2/leave_beta/applications/15
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
| Name | Description |
|---|---|
| id required | Leave Application ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 15,
"status": "success",
"timestamp": "2026-06-22T11:23:58.879+08:00"
}
Delete leave attachments
Deletes up to 10 attachment ids
Request
Endpoint
DELETE https://api.talenox.com/api/v2/leave_beta/attachments
DELETE https://api.talenox.com/api/v2/leave_beta/attachments?ids=4,2
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
ids: 4,2
| Name | Description |
|---|---|
| ids required | comma separated Attachment IDs |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Attachments deleted successfully",
"errors": {
"2": "no attachment found"
},
"timestamp": "2026-06-22T11:24:34.584+08:00"
}
Get leave application by id
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/applications/:id
GET https://api.talenox.com/api/v2/leave_beta/applications/14
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
| Name | Description |
|---|---|
| overlap_from required | Date in YYYY-MM-DD |
| overlap_to required | Date in YYYY-MM-DD |
| employee_id | Employee ID |
| approver_id | Employee ID of leave approver |
| category | 'type' or 'oil' |
| category_id | Leave Type ID for 'type' category, Off In Lieu ID for 'oil' category |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"amount": "1.0",
"approvers": null,
"attachments": [
{
"attachment_id": 2,
"filename": "dummy_image.png",
"file_size": 31798,
"file_url": "/uploads/attachment/281/1531/2/dummy_image.png",
"file_preview_url": "/uploads/attachment/281/1531/2/preview_dummy_image.png"
}
],
"category_class": "type",
"category_id": 104,
"created_at": "2026-06-22T03:23:56.073Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 14,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:56.073Z"
}
List all leave applications
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/applications
GET https://api.talenox.com/api/v2/leave_beta/applications?overlap_from=2026-06-22&overlap_to=2026-06-23
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
overlap_from: 2026-06-22
overlap_to: 2026-06-23
| Name | Description |
|---|---|
| overlap_from required | Date in YYYY-MM-DD |
| overlap_to required | Date in YYYY-MM-DD |
| created_start | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| created_end | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| modified_start | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| modified_end | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| leave_application_status | leave application status - pending, approved or rejected |
| employee_id | Employee ID |
| approver_id | Employee ID |
| category | 'type' or 'oil' |
| category_id | Leave Type ID for 'type' category, Off In Lieu ID for 'oil' category |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"amount": "1.0",
"approvers": null,
"attachments": null,
"category_class": "type",
"category_id": 91,
"created_at": "2026-06-22T03:23:38.530Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 1,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:38.530Z"
},
{
"amount": "1.0",
"approvers": null,
"attachments": null,
"category_class": "type",
"category_id": 92,
"created_at": "2026-06-22T03:23:39.009Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 2,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:39.009Z"
},
{
"amount": "1.0",
"approvers": null,
"attachments": null,
"category_class": "type",
"category_id": 93,
"created_at": "2026-06-22T03:23:39.466Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 3,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:39.466Z"
},
{
"amount": "1.0",
"approvers": null,
"attachments": [
{
"attachment_id": 1,
"filename": "dummy_image.png",
"file_size": 31798,
"file_url": "/uploads/attachment/281/1531/1/dummy_image.png",
"file_preview_url": "/uploads/attachment/281/1531/1/preview_dummy_image.png"
}
],
"category_class": "type",
"category_id": 94,
"created_at": "2026-06-22T03:23:39.923Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 4,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:39.923Z"
}
]
List all leave applications by application status and created dates
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/applications
GET https://api.talenox.com/api/v2/leave_beta/applications?overlap_from=2026-06-22&overlap_to=2026-06-23&created_start=2026-06-21&created_end=2026-06-23&leave_application_status=pending
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
overlap_from: 2026-06-22
overlap_to: 2026-06-23
created_start: 2026-06-21
created_end: 2026-06-23
leave_application_status: pending
| Name | Description |
|---|---|
| overlap_from required | Date in YYYY-MM-DD |
| overlap_to required | Date in YYYY-MM-DD |
| created_start | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| created_end | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| modified_start | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| modified_end | UTC timestamp in YYYY-MM-DD HH:MM:SSZ |
| leave_application_status | leave application status - pending, approved or rejected |
| employee_id | Employee ID |
| approver_id | Employee ID |
| category | 'type' or 'oil' |
| category_id | Leave Type ID for 'type' category, Off In Lieu ID for 'oil' category |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"amount": "1.0",
"approvers": null,
"attachments": null,
"category_class": "type",
"category_id": 95,
"created_at": "2026-06-22T03:23:41.722Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 5,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:41.722Z"
},
{
"amount": "1.0",
"approvers": null,
"attachments": null,
"category_class": "type",
"category_id": 96,
"created_at": "2026-06-22T03:23:42.171Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 6,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:42.171Z"
},
{
"amount": "1.0",
"approvers": null,
"attachments": null,
"category_class": "type",
"category_id": 97,
"created_at": "2026-06-22T03:23:42.642Z",
"employee_id": 1531,
"end_date": "2026-06-22",
"end_time": "PM",
"id": 7,
"non_working_amount": "0.0",
"remarks": null,
"start_date": "2026-06-22",
"start_time": "AM",
"status": "pending",
"updated_at": "2026-06-22T03:23:42.642Z"
}
]
Reject leave
This rejects a pending leave application
Request
Endpoint
PATCH https://api.talenox.com/api/v2/leave_beta/applications/reject/:id
PATCH https://api.talenox.com/api/v2/leave_beta/applications/reject/28
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 28,
"timestamp": "2026-06-22T11:24:27.468+08:00"
}
Upload leave attachment
Upload a leave attachment with multipart/form-data. Required parameters are Leave application id, employee id and file
Request
Endpoint
POST https://api.talenox.com/api/v2/leave_beta/attachments/upload
POST https://api.talenox.com/api/v2/leave_beta/attachments/upload
Accept: application/json
Content-Type: multipart/form-data; boundary=----------XnJLe9ZIbbGUYtzPQJ16u1
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
------------XnJLe9ZIbbGUYtzPQJ16u1
content-disposition: form-data; name="leave_application_id"
30
------------XnJLe9ZIbbGUYtzPQJ16u1
content-disposition: form-data; name="employee_id"
1531
------------XnJLe9ZIbbGUYtzPQJ16u1
content-disposition: form-data; name="file"; filename="dummy_image.png"
content-type: image/png
content-length: 31798
[uploaded data]
------------XnJLe9ZIbbGUYtzPQJ16u1--
None known.
Response
content-type: application/json; charset=utf-8
201 Created
{
"attachment_id": 3
}
delete multiple leave applications
Request
Endpoint
DELETE https://api.talenox.com/api/v2/leave_beta/applications
DELETE https://api.talenox.com/api/v2/leave_beta/applications?employee_id=1531&leave_application_ids=11
Accept: application/json
Content-Type: application/json
Authorization: Bearer bUqguvN_QnIlR1VKCvue2JnuQVkdKcz8POmcJlfLFH0
Parameters
employee_id: 1531
leave_application_ids: 11
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Leave application ids for input employee id 1531 processed successfully",
"errors": {},
"timestamp": "2026-06-22T11:23:54.519+08:00"
}
Leave Approval Structure (BETA)
Add new levels to a leave approval structure
Request
Endpoint
POST https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/levels
POST https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/127/levels
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
{
"approvers": [
{
"approver_ids": [
1552
],
"level": 2
}
]
}
| Name | Description |
|---|---|
| approver_ids required | json array of approver_ids and approval level |
Response
content-type: application/json; charset=utf-8
200 OK
{
"approvers": [
{
"level": 1,
"approvers": [
1560
]
},
{
"level": 2,
"approvers": [
1552
]
}
],
"company_default": true,
"id": 127,
"levels": 2,
"name": "Structure w3z1stzppk",
"number_of_employees": 2
}
Assign approvers to an existing level of a leave approval structure
Request
Endpoint
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/assign_approvers
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/121/assign_approvers
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
{
"approvers": [
{
"approver_ids": [
1552
],
"level": 1
}
]
}
| Name | Description |
|---|---|
| approver_ids required | json array of approver_ids and approval level |
Response
content-type: application/json; charset=utf-8
200 OK
{
"approvers": [
{
"level": 1,
"approvers": [
1560,
1552
]
}
],
"company_default": true,
"id": 121,
"levels": 1,
"name": "Structure no7tjggvjz",
"number_of_employees": 2
}
Assign employees to a leave approval structure
This returns an array of employee ids of an leave approval structure
Request
Endpoint
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/assign_employees
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/115/assign_employees?employee_ids=1552,1560
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
employee_ids: 1552,1560
| Name | Description |
|---|---|
| employee_ids required | comma separated Employee IDs |
| last_employee_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"assigned_employee_ids": [
1552,
1560
]
}
List all leave approval structures for a company
returns an array of leave approval structures for an authorized user's company
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/leave_approval_structures
GET https://api.talenox.com/api/v2/leave_beta/leave_approval_structures?company_id=333
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
company_id: 333
| Name | Description |
|---|---|
| company_id required | Company ID |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"approvers": [
{
"level": 1,
"approvers": [
1560
]
}
],
"company_default": true,
"id": 99,
"levels": 1,
"name": "Structure gfred4sh8l",
"number_of_employees": 2
}
]
List employees assigned to a leave approval structure
returns an array of employee ids of an leave approval structure
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/employees
GET https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/112/employees
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
| Name | Description |
|---|---|
| company_id required | Company ID |
| last_employee_id | For pagination. Results returned will start from this employee id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
1552,
1553
]
Remove levels to a leave approval structure
Request
Endpoint
DELETE https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/levels
DELETE https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/130/levels
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
{
"levels": [
1
]
}
| Name | Description |
|---|---|
| approver_ids required | json array of approver_ids and approval level |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "levels removed successfully",
"errors": [],
"timestamp": "2026-06-22T11:25:35.238+08:00"
}
Unassign approvers to an existing level of a leave approval structure
Request
Endpoint
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/unassign_approvers
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/124/unassign_approvers
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
{
"approvers": [
{
"approver_ids": [
1560
],
"level": 1
}
]
}
| Name | Description |
|---|---|
| approver_ids required | json array of approver_ids and approval level |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "approvers unassigned successfully",
"errors": [],
"timestamp": "2026-06-22T11:25:26.276+08:00"
}
Unassign employees of a leave approval structure
Request
Endpoint
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id/unassign_employees
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/118/unassign_employees?employee_ids=1552,1560
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
employee_ids: 1552,1560
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "employees unassigned successfully",
"errors": [
{
"message": "employee not found in leave approval structure",
"employee_id": 1560
}
],
"timestamp": "2026-06-22T11:25:17.537+08:00"
}
creates a leave approval structure
Request
Endpoint
POST https://api.talenox.com/api/v2/leave_beta/leave_approval_structures
POST https://api.talenox.com/api/v2/leave_beta/leave_approval_structures
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
{
"name": "new Test LAS ",
"company_id": 333,
"company_default": false,
"employee_ids": [
1552,
1560
]
}
| Name | Description |
|---|---|
| name required | Employee ID |
| company_id required | 'type' or 'oil' |
| company_default | COMPANY ID |
| employee_ids | json array of Employee ids. These employees will be assigned to the leave approval structure |
| approver_order | acceptable values: 'no_order', 'ascending_order', 'descending_order'. Sets the order of leave applications approval' emails. No order: Approval emails will be sent to all approvers at the same time. Ascending order: Approval emails will be send to 1st level then 2nd level. Descending order: approval emails be will sent to 2nd Level then 1st Level Approvers |
| flexible_approval_structure | false (Not Flexible), true (Flexible). Not flexible means all levels have to be assigned an approver during leave application. Flexible means some levels can not assigned for further flexibility during leave application |
Response
content-type: application/json; charset=utf-8
201 Created
{
"approvers": [],
"company_default": false,
"id": 98,
"levels": 0,
"name": "new Test LAS ",
"number_of_employees": 0
}
deletes a leave approval structure
Request
Endpoint
DELETE https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id
DELETE https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/111
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "leave approval structure deleted successfully",
"timestamp": "2026-06-22T11:25:03.829+08:00"
}
gets a leave approval structure by id
returns a single leave approval structure for the given id
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id
GET https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/102
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
| Name | Description |
|---|---|
| id required | Leave Approval Structure ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"approvers": [
{
"level": 1,
"approvers": [
1560
]
}
],
"company_default": true,
"id": 102,
"levels": 1,
"name": "Structure 33rg24ch2k",
"number_of_employees": 2
}
updates a leave approval structure
Request
Endpoint
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/:id
PUT https://api.talenox.com/api/v2/leave_beta/leave_approval_structures/105
Accept: application/json
Content-Type: application/json
Authorization: Bearer IT8loD9VFEyWY-M-HCOJ2RZOlF-jL0wyGM2DPMzIgQU
Parameters
{
"name": "new Test LAS 2",
"company_id": 333,
"employee_ids": [
1552,
1560
]
}
| Name | Description |
|---|---|
| name required | Employee ID |
| company_id required | 'type' or 'oil' |
| company_default required | COMPANY ID |
| employee_ids | json array of Employee ids. These employees will be assigned to the leave approval structure |
| approver_order | acceptable values: 'no_order', 'ascending_order', 'descending_order'. Sets the order of leave applications approval' emails. No order: Approval emails will be sent to all approvers at the same time. Ascending order: Approval emails will be send to 1st level then 2nd level. Descending order: approval emails be will sent to 2nd Level then 1st Level Approvers |
| flexible_approval_structure | false (Not Flexible), true (Flexible). Not flexible means all levels have to be assigned an approver during leave application. Flexible means some levels can not assigned for further flexibility during leave application |
Response
content-type: application/json; charset=utf-8
200 OK
{
"approvers": [
{
"level": 1,
"approvers": [
1560
]
}
],
"company_default": true,
"id": 105,
"levels": 1,
"name": "new Test LAS 2",
"number_of_employees": 2
}
Leave Approvers (BETA)
List a leave approver for an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/approvers
GET https://api.talenox.com/api/v2/leave_beta/approvers?employee_id=1591&approver_id=38
Accept: application/json
Content-Type: application/json
Authorization: Bearer DoFlTdFy1xDajFfhntodMfNXVkD5sBhTTUvf2ny6MRc
Parameters
employee_id: 1591
approver_id: 38
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| approver_id | Employee ID for Approver |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"approver_ids": [
1595
],
"level": 1,
"flexible": false
}
]
List all leave approvers for an employee
This returns an array of leave approval structures for an authorized user's company
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/approvers
GET https://api.talenox.com/api/v2/leave_beta/approvers?employee_id=1591
Accept: application/json
Content-Type: application/json
Authorization: Bearer DoFlTdFy1xDajFfhntodMfNXVkD5sBhTTUvf2ny6MRc
Parameters
employee_id: 1591
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| approver_id | Employee ID for Approver |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"approver_ids": [
1595
],
"level": 1,
"flexible": false
}
]
Leave Off in Lieus (BETA)
Get off in lieu balance for all off in lieus of an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/balance
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/balance?employee_id=1617&query_date=20260622&limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer E9lHhn7idZsQoBm1qvCK0hxjk2RHzgGtUpnOyOxLN0I
Parameters
employee_id: 1617
query_date: 20260622
limit: 5
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| id | Off In Lieu ID |
| query_date required | Query Date in YYYY-MM-DD format |
| last_seen_id | Last seen Employee ID for pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"employee_id": 1617,
"query_date": "2026-06-22",
"timestamp": "2026-06-22T11:26:03.604+08:00",
"results": [
{
"balance": 1.0,
"errors": [],
"leave_type_id": 4
}
]
}
Get off in lieu balance for an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/balance
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/balance?employee_id=1617&query_date=20260622&limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer E9lHhn7idZsQoBm1qvCK0hxjk2RHzgGtUpnOyOxLN0I
Parameters
employee_id: 1617
query_date: 20260622
limit: 5
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| id | Off In Lieu ID |
| query_date required | Query Date in YYYY-MM-DD format |
| last_seen_id | Last seen Employee ID for pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"employee_id": 1617,
"query_date": "2026-06-22",
"timestamp": "2026-06-22T11:26:04.317+08:00",
"results": [
{
"balance": 1.0,
"errors": [],
"leave_type_id": 5
}
]
}
Get off in lieu by id
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/:id
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/3
Accept: application/json
Content-Type: application/json
Authorization: Bearer E9lHhn7idZsQoBm1qvCK0hxjk2RHzgGtUpnOyOxLN0I
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"application_allowed": "allowed",
"half_day_allowed": true,
"id": 3,
"name": "Off day",
"policy_end_date": "2026-07-22",
"policy_start_date": "2026-06-22",
"quantity_type": "day"
}
Get off in lieu entitlement for an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/entitlement_period
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus/entitlement_period?employee_id=1617&id=6&query_date=20260622
Accept: application/json
Content-Type: application/json
Authorization: Bearer E9lHhn7idZsQoBm1qvCK0hxjk2RHzgGtUpnOyOxLN0I
Parameters
employee_id: 1617
id: 6
query_date: 20260622
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| id required | Off In Lieu ID |
| query_date required | Query Date in YYYY-MM-DD format |
Response
content-type: application/json; charset=utf-8
200 OK
{
"employee_id": 1617,
"leave_type_id": 6,
"query_date": "2026-06-22",
"timestamp": "2026-06-22T11:26:04.929+08:00",
"valid_periods": {
"end_date": "2026-07-22",
"errors": [],
"start_date": "2026-06-22"
}
}
List all off in lieus
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus
Accept: application/json
Content-Type: application/json
Authorization: Bearer E9lHhn7idZsQoBm1qvCK0hxjk2RHzgGtUpnOyOxLN0I
Parameters
| Name | Description |
|---|---|
| employee_id | Employee ID |
| id | Off in Lieu ID |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"application_allowed": "allowed",
"half_day_allowed": true,
"id": 1,
"name": "Off day",
"policy_end_date": "2026-07-22",
"policy_start_date": "2026-06-22",
"quantity_type": "day"
}
]
List off in lieus for an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus
GET https://api.talenox.com/api/v2/leave_beta/off_in_lieus?employee_id=1617&id=2
Accept: application/json
Content-Type: application/json
Authorization: Bearer E9lHhn7idZsQoBm1qvCK0hxjk2RHzgGtUpnOyOxLN0I
Parameters
employee_id: 1617
id: 2
| Name | Description |
|---|---|
| employee_id | Employee ID |
| id | Off in Lieu ID |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"application_allowed": "allowed",
"half_day_allowed": true,
"id": 2,
"name": "Off day",
"policy_end_date": "2026-07-22",
"policy_start_date": "2026-06-22",
"quantity_type": "day"
}
]
Leave Types (BETA)
Get leave balance for a leave type of an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/types/balance
GET https://api.talenox.com/api/v2/leave_beta/types/balance?employee_id=1602&id=170&query_date=20260622
Accept: application/json
Content-Type: application/json
Authorization: Bearer -JRdQ4u6PkTj1t1EOWP1k4OhvBHvNHDnxA1cke6ypbE
Parameters
employee_id: 1602
id: 170
query_date: 20260622
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| id | Leave Type ID |
| query_date required | Query Date in YYYY-MM-DD format |
| last_seen_id | Last seen Employee ID for pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"employee_id": 1602,
"query_date": "2026-06-22",
"timestamp": "2026-06-22T11:25:56.013+08:00",
"results": [
{
"balance": 10.0,
"errors": [],
"leave_type_id": 170
}
]
}
Get leave balance for all leave types of an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/types/balance
GET https://api.talenox.com/api/v2/leave_beta/types/balance?employee_id=1602&query_date=20260622&limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer -JRdQ4u6PkTj1t1EOWP1k4OhvBHvNHDnxA1cke6ypbE
Parameters
employee_id: 1602
query_date: 20260622
limit: 5
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| id | Leave Type ID |
| query_date required | Query Date in YYYY-MM-DD format |
| last_seen_id | Last seen Employee ID for pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"employee_id": 1602,
"query_date": "2026-06-22",
"timestamp": "2026-06-22T11:25:55.462+08:00",
"results": [
{
"balance": 10.0,
"errors": [],
"leave_type_id": 170
},
{
"balance": null,
"errors": [
"Employee has no registered children (requires date of birth and nationality).",
"Unverified next-of-kin, please contact your admin.",
"Required conditional date(s) not found."
],
"leave_type_id": 171
},
{
"balance": null,
"errors": [
"Employee has no registered children (requires date of birth and nationality).",
"Unverified next-of-kin, please contact your admin.",
"Required conditional date(s) not found."
],
"leave_type_id": 172
},
{
"balance": null,
"errors": [
"Employee has no registered children (requires date of birth and nationality).",
"Unverified next-of-kin, please contact your admin.",
"Required conditional date(s) not found."
],
"leave_type_id": 173
},
{
"balance": 365.0,
"errors": [],
"leave_type_id": 174
}
]
}
Get leave entitlement for an employee and leave type
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/types/entitlement_period
GET https://api.talenox.com/api/v2/leave_beta/types/entitlement_period?employee_id=1602&id=170&query_date=20260622
Accept: application/json
Content-Type: application/json
Authorization: Bearer -JRdQ4u6PkTj1t1EOWP1k4OhvBHvNHDnxA1cke6ypbE
Parameters
employee_id: 1602
id: 170
query_date: 20260622
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| id required | Leave Type ID |
| query_date required | Query Date in YYYY-MM-DD format |
Response
content-type: application/json; charset=utf-8
200 OK
{
"employee_id": 1602,
"leave_type_id": 170,
"query_date": "2026-06-22",
"timestamp": "2026-06-22T11:25:56.474+08:00",
"valid_periods": [
{
"end_date": "2025-12-31",
"errors": [],
"start_date": "2025-06-22"
},
{
"end_date": "2026-12-31",
"errors": [],
"start_date": "2026-01-01"
}
]
}
Get leave type by id
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/types/:id
GET https://api.talenox.com/api/v2/leave_beta/types/170
Accept: application/json
Content-Type: application/json
Authorization: Bearer -JRdQ4u6PkTj1t1EOWP1k4OhvBHvNHDnxA1cke6ypbE
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"application_allowed": "allowed",
"half_day_allowed": true,
"id": 170,
"name": "Annual Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
}
List all leave types
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/types
GET https://api.talenox.com/api/v2/leave_beta/types
Accept: application/json
Content-Type: application/json
Authorization: Bearer -JRdQ4u6PkTj1t1EOWP1k4OhvBHvNHDnxA1cke6ypbE
Parameters
| Name | Description |
|---|---|
| employee_id | Employee ID |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"application_allowed": "allowed",
"half_day_allowed": true,
"id": 170,
"name": "Annual Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": true,
"id": 171,
"name": "Child Care Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 172,
"name": "Extended Child Care Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 173,
"name": "Maternity Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "week"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 174,
"name": "No Pay Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 175,
"name": "Paternity Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "week"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 176,
"name": "Shared Parental Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "week"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 177,
"name": "Sick Leave - Outpatient",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 178,
"name": "Sick Leave - Hospitalisation",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 179,
"name": "Unpaid Infant Care Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
}
]
List all leave types for an employee
Request
Endpoint
GET https://api.talenox.com/api/v2/leave_beta/types
GET https://api.talenox.com/api/v2/leave_beta/types?employee_id=1602&last_seen_id=171&limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer -JRdQ4u6PkTj1t1EOWP1k4OhvBHvNHDnxA1cke6ypbE
Parameters
employee_id: 1602
last_seen_id: 171
limit: 5
| Name | Description |
|---|---|
| employee_id | Employee ID |
| last_seen_id | For pagination. Results returned will start from this last seen id + 1 |
| limit | For pagination. Number of items per page (default: 20, max:50) |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 172,
"name": "Extended Child Care Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 173,
"name": "Maternity Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "week"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 174,
"name": "No Pay Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "day"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 175,
"name": "Paternity Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "week"
},
{
"application_allowed": "allowed",
"half_day_allowed": false,
"id": 176,
"name": "Shared Parental Leave",
"policy_end_date": null,
"policy_start_date": null,
"quantity_type": "week"
}
]
Metadata
To fetch all possible values for the given fields
Get Metadata Items
Request
Endpoint
POST https://api.talenox.com/api/v2/metadata/get_items
POST https://api.talenox.com/api/v2/metadata/get_items
Accept: application/json
Content-Type: application/json
Authorization: Bearer c4963607c6706633a92f75d1f7392c42e22d16b6
Parameters
{
"fields": [
"company",
"marital_status",
"gender",
"payment_method",
"rate_of_pay",
"country_name",
"region",
"citizenship",
"nationality",
"race",
"religion",
"bank_type",
"currency",
"relationship",
"wp_worker_category",
"cpf_donation_type",
"wp_dcs",
"spass_dcs",
"voluntary_employer_contribution_type",
"voluntary_employee_contribution_type",
"voluntary_employer_contribution_rate",
"voluntary_employee_contribution_rate",
"socso_setting",
"employee_epf_setting",
"employer_epf_setting",
"period",
"pay_item_types"
]
}
| Name | Description |
|---|---|
| fields required | List of parameters |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"company": {
"id": 425,
"name": "Hauck, Connelly and Heidenreich"
}
},
{
"marital_status": [
"Single",
"Widowed",
"Separated",
"Married",
"Divorced"
]
},
{
"gender": [
"Male",
"Female"
]
},
{
"payment_method": [
"Cheque",
"Cash",
"Bank Transfer",
"Forex Transfer"
]
},
{
"rate_of_pay": [
"Monthly",
"Daily",
"Hourly"
]
},
{
"country_name": [
"Afghanistan",
"Albania",
"Algeria",
"American Samoa",
"Andorra",
"Angola",
"Anguilla",
"Antarctica",
"Antigua and Barbuda",
"Argentina",
"Armenia",
"Aruba",
"Australia",
"Austria",
"Azerbaijan",
"Bahamas",
"Bahrain",
"Bangladesh",
"Barbados",
"Belarus",
"Belgium",
"Belize",
"Benin",
"Bermuda",
"Bhutan",
"Bolivia",
"Bonaire, Sint Eustatius and Saba",
"Bosnia and Herzegovina",
"Botswana",
"Bouvet Island",
"Brazil",
"British Indian Ocean Territory",
"British Virgin Islands",
"Brunei",
"Bulgaria",
"Burkina Faso",
"Burundi",
"Cambodia",
"Cameroon",
"Canada",
"Canary Islands",
"Cape Verde",
"Cayman Islands",
"Central African Republic",
"Chad",
"Chile",
"China",
"Christmas Island",
"Cocos (Keeling Islands)",
"Colombia",
"Comoros",
"Cook Islands",
"Costa Rica",
"Cote D'Ivoire (Ivory Coast)",
"Croatia",
"Cuba",
"Curacao",
"Cyprus",
"Czech Republic",
"Democratic Republic of the Congo",
"Denmark",
"Djibouti",
"Dominica",
"Dominican Republic",
"East Timor",
"Ecuador",
"Egypt",
"El Salvador",
"Equatorial Guinea",
"Eritrea",
"Estonia",
"Ethiopia",
"Falkland Islands (Islas Malvinas)",
"Faroe Islands",
"Fiji",
"Finland",
"France",
"France, Metropolitan",
"French Guiana",
"French Polynesia",
"French Southern Territories",
"Gabon",
"Gambia",
"Georgia",
"Germany",
"Ghana",
"Gibraltar",
"Great Britain",
"Greece",
"Greenland",
"Grenada",
"Guadeloupe",
"Guam",
"Guatemala",
"Guernsey",
"Guinea",
"Guinea-Bissau",
"Guyana",
"Haiti",
"Hawaii",
"Heard and McDonald Islands",
"Honduras",
"Hong Kong",
"Hungary",
"Iceland",
"India",
"Indonesia",
"Iran",
"Iraq",
"Ireland",
"Isle of Man",
"Israel",
"Italy",
"Jamaica",
"Japan",
"Jersey",
"Jordan",
"Kazakhstan",
"Kenya",
"Kiribati",
"Korea North",
"Korea South",
"Kosovo",
"Kuwait",
"Kyrgyzstan",
"Laos",
"Latvia",
"Lebanon",
"Lesotho",
"Liberia",
"Libya",
"Liechtenstein",
"Lithuania",
"Luxembourg",
"Macau",
"Macedonia",
"Madagascar",
"Malawi",
"Malaysia",
"Maldives",
"Mali",
"Malta",
"Marshall Islands",
"Martinique",
"Mauritania",
"Mauritius",
"Mayotte",
"Mexico",
"Micronesia",
"Moldova",
"Monaco",
"Mongolia",
"Montenegro",
"Montserrat",
"Morocco",
"Mozambique",
"Myanmar",
"Namibia",
"Nauru",
"Nepal",
"Netherlands",
"Netherlands Antilles",
"New Caledonia",
"New Zealand",
"Nicaragua",
"Niger",
"Nigeria",
"Niue",
"Norfolk Island",
"Northern Mariana Islands",
"Norway",
"Oman",
"Pakistan",
"Palau",
"Palestinian Territories",
"Panama",
"Papua New Guinea",
"Paraguay",
"Peru",
"Philippines",
"Pitcairn Islands",
"Poland",
"Portugal",
"Puerto Rico",
"Qatar",
"Republic of Serbia",
"Republic of the Congo",
"Reunion",
"Romania",
"Russia",
"Rwanda",
"Saint Barthelemy",
"Saint Helena",
"Saint Kitts and Nevis",
"Saint Lucia",
"Saint Martin (French part)",
"Saint Pierre and Miquelon",
"Saint Vincent and the Grenadines",
"Samoa",
"San Marino",
"Sao Tome and Principe",
"Saudi Arabia",
"Senegal",
"Seychelles",
"Sierra Leone",
"Singapore",
"Sint Maarten (Dutch part)",
"Slovakia",
"Slovenia",
"Solomon Islands",
"Somalia",
"South Africa",
"South Georgia and the South Sandwich Islands",
"South Sudan",
"Spain",
"Sri Lanka",
"Sudan",
"Suriname",
"Svalbard",
"Swaziland",
"Sweden",
"Switzerland",
"Syria",
"Taiwan",
"Tajikistan",
"Tanzania",
"Thailand",
"Togo",
"Tokelau",
"Tonga",
"Trinidad and Tobago",
"Tunisia",
"Turkey",
"Turkmenistan",
"Turks and Caicos Islands",
"Tuvalu",
"US Minor Outlying Islands",
"Uganda",
"Ukraine",
"United Arab Emirates",
"United Kingdom",
"United States",
"Uruguay",
"Uzbekistan",
"Vanuatu",
"Vatican City State",
"Venezuela",
"Vietnam",
"Virgin Islands (US)",
"Wallis and Futuna Islands",
"Western Sahara",
"Yemen",
"Yugoslavia",
"Zaire",
"Zambia",
"Zimbabwe",
"Ã…land Islands"
]
},
{
"region": []
},
{
"citizenship": [
"Singapore Citizen",
"Singapore PR",
"S Pass",
"E Pass",
"Personalised Employment Pass",
"Pre-Approved Letter of Consent",
"Letter of Consent(Dependent Pass, Long term visit pass)",
"Work Permit",
"Student Visa (No CPF, No SDL)",
"Contract (No CPF, No SDL)",
"Contract With SDL (No CPF, W/SDL)",
"Work Holiday Pass(No CPF)",
"EntrePass",
"Intern",
"Passport (Oversea Director)",
"Tech Pass",
"Overseas Networks & Expertise Pass",
"Training Employment Pass",
"Training Work Permit"
]
},
{
"nationality": [
"Afghan",
"Albanian",
"Algerian",
"American",
"Andorran",
"Angolan",
"Anguillan",
"Antiguan",
"Argentine",
"Armenian",
"Arubian",
"Australian",
"Austrian",
"Azerbaijani",
"Bahamian",
"Bahraini",
"Bangladeshi",
"Barbadian",
"Barbudans",
"Batswana",
"Belarusian",
"Belgian",
"Belizean",
"Beninese",
"Bermudan",
"Bhutanese",
"Bolivian",
"Bosnian",
"Brazilian",
"British",
"British National (Overseas)",
"Bruneian",
"Bulgarian",
"Burkinabe",
"Burmese",
"Burundian",
"Cambodian",
"Cameroonian",
"Canadian",
"Cape Verdean",
"Caymanian",
"Central African",
"Chadian",
"Chilean",
"Chinese",
"Christmas Islander",
"Cocossian",
"Colombian",
"Cook Islander",
"Comoran",
"Congolese",
"Costa Rican",
"Croatian",
"Cuban",
"Cypriot",
"Czech",
"Danish",
"Djibouti",
"Dominican",
"Dutch",
"Ecuadorean",
"Egyptian",
"Emirian",
"Equatorial Guinean",
"Eritrean",
"Estonian",
"Ethiopian",
"Falkland Irishslander",
"Faroese",
"Fijian",
"Filipino",
"Finnish",
"French",
"French Guianese",
"French Polynesian",
"Gabonese",
"Gambian",
"Georgian",
"German",
"Ghanaian",
"Gibraltarian",
"Greek",
"Greenlander",
"Grenadian",
"Guadeloupean",
"Guamanian",
"Guatemalan",
"Guinea Bissauan",
"Guinean",
"Guyanese",
"Haitian",
"Herzegovinian",
"Honduran",
"Hong Kongers",
"Hong Kong Chinese",
"Hungarian",
"I-kiribati",
"Icelander",
"Indian",
"Indonesian",
"Iranian",
"Iraqi",
"Irish",
"Israeli",
"Italian",
"Ivorian",
"Jamaican",
"Japanese",
"Jordanian",
"Kazakhstani",
"Kenyan",
"Kittian And Nevisian",
"Kosovar",
"Kuwaiti",
"Kyrgyz",
"Laotian",
"Latvian",
"Lebanese",
"Liberian",
"Libyan",
"Liechtensteiner",
"Lithuanian",
"Luxembourger",
"Macau",
"Macedonian",
"Malagasy",
"Malawian",
"Malaysian",
"Maldivan",
"Malian",
"Maltese",
"Manx",
"Marshallese",
"Martinican",
"Mauritanian",
"Mauritian",
"Mexican",
"Micronesian",
"Moldovan",
"Monacan",
"Mongolian",
"Montenegrin",
"Montserratian",
"Moroccan",
"Mosotho",
"Motswana",
"Mozambican",
"Myanmarese",
"Namibian",
"Nauruan",
"Nepalese",
"Nevisian",
"New Caledonian",
"New Zealander",
"Ni Vanuatu",
"Nicaraguan",
"Nigerian",
"Nigerien",
"Niuean",
"Norfolk Islander",
"North Korean",
"Northern Irish",
"Norwegian",
"Omani",
"Pakistani",
"Palauan",
"Palestinian",
"Panamanian",
"Papua New Guinean",
"Paraguayan",
"Peruvian",
"Polish",
"Portuguese",
"Puerto Rican",
"Qatari",
"Romanian",
"Russian",
"Rwandan",
"Saint Lucian",
"Saint Vincentian",
"Salvadorean",
"Samoan",
"Sanmarinese",
"Sao Tomean",
"Saudi",
"Scottish",
"Senegalese",
"Serbian",
"Seychellois",
"Sierra Leonean",
"Singaporean",
"Slovakian",
"Slovenian",
"Solomon Islander",
"Somali",
"South African",
"South Korean",
"Spanish",
"Sri Lankan",
"Sudanese",
"Surinamer",
"Swazi",
"Swedish",
"Swiss",
"Syrian",
"Taiwanese",
"Tajik",
"Tanzanian",
"Thai",
"Timorese",
"Togolese",
"Tokelauan",
"Tongan",
"Trinidadian Or Tobagonian",
"Tunisian",
"Turkish",
"Turkmen",
"Tuvaluan",
"Ugandan",
"Ukrainian",
"Uruguayan",
"Uzbekistani",
"Venezuelan",
"Vietnamese",
"Welsh",
"Western Saharan",
"Yemenite",
"Zambian",
"Zimbabwean"
]
},
{
"race": [
"African",
"African-American",
"Bidayuh",
"Bumiputra",
"Caucasian",
"Chinese",
"Eurasian",
"Filipino",
"Iban",
"Indian",
"Japanese",
"Korean",
"Malay",
"Thai",
"Others"
]
},
{
"religion": [
"Taoism",
"Buddhism",
"Confucianism",
"Bahá'à Faith",
"Islam",
"Catholicism",
"Christianity",
"Hinduism",
"Sikhism",
"Judaism",
"Jainism",
"Others",
"No Religion",
"Free Thinker"
]
},
{
"bank_type": [
"Standard Chartered",
"RHB",
"POSB",
"POSB Plus",
"OCBC",
"UOB",
"Citibank N.A Singapore Branch (CNAS)",
"Crédit Agricole",
"Commerzbank",
"Allahabad",
"ANZ",
"Bank of China",
"India - HDFC Bank",
"ASB Bank Limited(New Zealand)",
"HSBC",
"HSBC Corporate",
"Maybank - Singapore Branch",
"CIMB",
"UBS AG",
"India - State Bank of India",
"India - The Federal Bank Ltd",
"India - Canara Bank",
"ICICI Bank",
"Sydbank",
"Sumitomo Mitsui Banking Corporation",
"Mizuho Corporate Bank, Ltd",
"AXIS Bank",
"DnB NOR Bank ASA",
"Shinhan",
"BNP Paribas",
"The Bank of Tokyo-Mitsubishi UFJ, Ltd",
"Citibank Singapore Limited (CSL)",
"Pakistan - Bank AlHabib",
"Pakistan - Habib Limited Bank",
"Industrial and Commercial Bank of China Limited",
"JP Morgan Chase Bank, N.A",
"Pakistan - Bank Alfalah Limited",
"Italy - Banca Prealpi SanBiagio",
"Commonwealth Bank of Australia",
"CA Indosuez",
"Pakistan - Meezan Bank",
"Vietnam - Asia Commercial Joint Stock Bank",
"State Bank of India",
"Pakistan - MCB Bank Limited",
"United Kingdom - Nationwide Building Society",
"Indonesia - BCA",
"Thailand - Bangkok Bank",
"Sri Lanka - Commercial Bank of Ceylon",
"Sri Lanka - Sampath Bank",
"Sri Lanka - National Development Bank",
"Bangkok Bank",
"Vietnam Techcombank",
"Indonesia - Mandiri Bank",
"Brazil - Banco Maxima Bank",
"United Kingdom - Monzo Bank Limited",
"United Kingdom - Barclays Bank",
"Thailand - Krungthai Bank",
"Indonesia - OCBC NISP",
"Bangkok Bank Public Company Limited",
"Malaysia - Maybank",
"Vietnam - Vietcombank",
"Indonesia - Bank Negara",
"Thailand - Kasikornbank",
"Indonesia - Permata Bank",
"Malaysia - UOB",
"Malaysia - RHB Bank",
"Thailand - Siam Commercial Bank",
"Australia - National Australia Bank",
"Malaysia - HSBC Amanah",
"Denmark - Lan and Spar Bank",
"United States - Bank of America",
"India - Indian Overseas Bank",
"Wise",
"Korea - KEB Hana Bank",
"Switzerland - Sygnum Bank",
"Malaysia - Public Bank",
"Airwallex",
"Aspire FT Pte. Ltd.",
"DBS",
"Maybank - Singapore Limited",
"Bank of America"
]
},
{
"currency": [
"SGD",
"HKD",
"MYR",
"USD",
"QAR",
"EUR",
"AUD",
"THB",
"PHP",
"IDR",
"INR",
"GBP",
"CAD",
"NZD",
"VND",
"BND",
"CNY",
"MMK",
"KRW",
"TWD",
"DKK",
"KHR",
"JPY",
"AED",
"PKR",
"SEK",
"ZAR",
"LKR",
"CHF",
"NPR",
"KES",
"RUB",
"RWF",
"KYD",
"MOP",
"MXN",
"NGN",
"BTN",
"VUV",
"TRY"
]
},
{
"relationship": [
"Wife",
"Husband",
"Daughter",
"Son",
"Mother",
"Father",
"Sister",
"Brother",
"Others",
"Grandparent",
"Grandchildren"
]
},
{
"wp_worker_category": [
"Skilled",
"Unskilled"
]
},
{
"cpf_donation_type": [
"MBMF",
"CDAC",
"SINDA",
"ECF",
"N/A"
]
},
{
"wp_dcs": [
"Basic Tier / Tier 1: Up to 10% of the total workforce",
"Tier 2: Above 10% to 25% of the total workforce",
"Tier 3: Above 25% to 40% of the total workforce"
]
},
{
"spass_dcs": [
"Basic Tier / Tier 1: Up to 10% of the total workforce",
"Tier 2: Above 10% to 25% of the total workforce",
"Tier 3: Above 25% to 40% of the total workforce"
]
},
{
"voluntary_employer_contribution_type": [
"Percentage",
"Fixed Amount"
]
},
{
"voluntary_employee_contribution_type": [
"Percentage",
"Fixed Amount"
]
},
{
"voluntary_employer_contribution_rate": [
"3%",
"5%",
"6%",
"7%",
"8%",
"9%",
"10%",
"11%",
"12%",
"13%",
"14%",
"15%"
]
},
{
"voluntary_employee_contribution_rate": [
"3%",
"5%",
"6%",
"7%",
"8%",
"9%",
"10%",
"11%",
"12%",
"13%",
"14%",
"15%"
]
},
{
"socso_setting": [
"N/A",
"Automatic scheme selection based on age",
"Employment Injury Scheme and Invalidity Scheme",
"Employment Injury Scheme",
"Foreign Workers Social Security"
]
},
{
"employee_epf_setting": [
"Statutory Default",
"4%",
"5%",
"5.5%",
"6%",
"7%",
"8%",
"9%",
"10%",
"11%",
"12%",
"13%",
"14%",
"15%",
"16%",
"17%",
"18%",
"19%",
"20%",
"21%",
"22%",
"23%",
"24%",
"25%",
"26%",
"27%",
"28%",
"29%",
"30%",
"31%",
"32%",
"40%",
"46.6%",
"55%"
]
},
{
"employer_epf_setting": [
"Statutory Default",
"N/A",
"4%",
"5%",
"6%",
"6.5%",
"7%",
"8%",
"9%",
"10%",
"11%",
"12%",
"13%",
"14%",
"15%",
"16%",
"17%",
"18%",
"19%",
"20%",
"21%",
"22%",
"23%",
"24%",
"25%",
"26%",
"27%",
"28%",
"29%",
"30%",
"31%",
"32%"
]
},
{
"period": [
"Whole Month",
"Whole Month (no monthly pay items)",
"1st Half of Month",
"2nd Half of Month"
]
},
{
"pay_item_types": {
"Recurring": [
"Basic Pay",
"Basic Pay(without proration)",
"Allowance",
"Allowance(without proration)",
"Deduction",
"Deduction (from Net Salary)",
"IR21 Tax Withholding",
"Commission (Daily/Weekly/Monthly)",
"Extra Duty Allowance",
"Housing/ Rental Allowance",
"Incentive Allowance",
"Meal Allowance",
"Per Diem Allowance",
"Transport Allowance",
"Tips",
"Director fees",
"Bonus",
"Others",
"Deduction (from Net Salary)(no SHG contribution)",
"Commission (AW)",
"Medisave",
"Deduction Community Chest"
],
"Adhoc": [
"Reimbursements",
"Advance Pay",
"Allowance",
"Deduction",
"Commission (Irregular)",
"Extra Duty Allowance",
"Festive Allowance",
"Housing/ Rental Allowance",
"Incentive",
"Incentive Allowance",
"IR21 Tax Withholding",
"Meal Allowance",
"Per Diem Allowance",
"Per Diem Reimbursement",
"Transport Allowance",
"Referral of Employees Fees",
"Benefits in Kind",
"Gifts in Kind",
"Share Option Sale",
"Termination Benefits",
"Tips",
"Annual Wage Supplement",
"Bonus",
"Prior Year Bonus",
"Prior Year AWS",
"Leave Pay",
"Director fees",
"Backdated Salary Increment",
"Backdated Salary",
"Deduction (from Net Salary)",
"Others",
"Others(no gross)",
"Salary in lieu",
"Onboarding incentive",
"Gratuity paid for years of service",
"Compensation for loss of employment",
"Deduction (from Net Salary)(no SHG contribution)",
"NS Leave Claims Deduction",
"Flexi-Benefit Personal Insurance",
"Flexi-Benefit Optical Expenses",
"Flexi-Benefit Health Screening & Vaccinations",
"Flexi-Benefit Childcare / Eldercare Fees For Dependants",
"Flexi-Benefit Medical Expenses For Dependants",
"Flexi-Benefit Dental Expenses For Dependants",
"Flexi-Benefit Gym Membership",
"Flexi-Benefit Holiday Expenses",
"Flexi-Benefit TCM / CHIRO/ PHYSIO",
"Gratuity",
"Flexi-Benefit Work From Home",
"Flexi-Benefit Mental Health Awareness",
"Flexi-Benefit Personal Planning & Enrichment",
"Flexi-Benefit Home Affairs Support",
"Flexi-Benefit Home Family Bonding Facilitation",
"Flexi-Benefit Professional Subscription"
],
"Attendance": [
"Regular Hours",
"Overtime Hours",
"Regular Days",
"Overtime Days",
"Public Holiday Pay",
"Rest Day Pay",
"Deputy Awage",
"Deputy"
]
}
}
]
Next of Kins
Create Next of Kin
Request
Endpoint
POST https://api.talenox.com/api/v2/next_of_kins
POST https://api.talenox.com/api/v2/next_of_kins
Accept: application/json
Content-Type: application/json
Authorization: Bearer 286c1d2fc433231ddb18a1ea8c465bc0fd5a384a
Parameters
{
"employee_id": 1635,
"next_of_kin": {
"name": "NOK Name",
"birthdate": "01/01/2018",
"relationship": "Wife",
"gender": "Male",
"citizenship": "Singaporean",
"ssn": "12345678"
}
}
| Name | Description |
|---|---|
| employee_id required | Employee ID |
| name required | Name |
| contact_number | Contact Number |
| alternate_contact_number | Alternate Contact Number |
| birthdate | Birth Date |
| relationship required | Relationship |
| gender | Gender |
| citizenship | Citizenship |
| ssn | Identification Number |
| passport | Passport Number |
| marriage_date | Marriage Date |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 4,
"employee_id": 1635,
"name": "NOK Name",
"relationship": "Wife",
"contact_number": null,
"alternate_contact_number": null,
"birthdate": "2018-01-01",
"gender": "Male",
"marriage_date": null,
"ssn": "12345678",
"passport": null,
"citizenship": "Singaporean"
}
Delete Next of Kin
Request
Endpoint
DELETE https://api.talenox.com/api/v2/next_of_kins/:id
DELETE https://api.talenox.com/api/v2/next_of_kins/7
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3ce1817cc3c4877e3c61707bd8f96db1bf92cddb
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted next of kin Name"
}
Get Next of Kin
Request
Endpoint
GET https://api.talenox.com/api/v2/next_of_kins/:id
GET https://api.talenox.com/api/v2/next_of_kins/5
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3cca09655b0e2cee4b216eef71bbcf87b7601c10
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 5,
"employee_id": 1646,
"name": "Name",
"relationship": "Son",
"contact_number": null,
"alternate_contact_number": null,
"birthdate": "2026-06-22",
"gender": null,
"marriage_date": null,
"ssn": null,
"passport": null,
"citizenship": "Singaporean"
}
Update Next of Kin
Request
Endpoint
PUT https://api.talenox.com/api/v2/next_of_kins/:id
PUT https://api.talenox.com/api/v2/next_of_kins/6
Accept: application/json
Content-Type: application/json
Authorization: Bearer f9b4ed166c082f506a0bd83493b968685e585eb8
Parameters
{
"next_of_kin": {
"name": "Change name"
}
}
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 6,
"employee_id": 1657,
"name": "Change name",
"relationship": "Son",
"contact_number": null,
"alternate_contact_number": null,
"birthdate": "2026-06-22",
"gender": null,
"marriage_date": null,
"ssn": null,
"passport": null,
"citizenship": "Singaporean"
}
Payroll
Create Adhoc Payment
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/adhoc_payment
POST https://api.talenox.com/api/v2/payroll/adhoc_payment
Accept: application/json
Content-Type: application/json
Authorization: Bearer 215cf287d121950ea885a3aff5cd09acd72d869b
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 20
},
"pay_items": [
{
"employee_id": "K00001",
"item_type": "Allowance",
"amount": 1000,
"remarks": ""
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| pay_items required | Below are pay items related fields |
| employee_id required | Employee ID |
| item_type required | Pay Item Type |
| remarks | Remarks |
| amount required | Amount |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 20,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"pay_items": [
{
"id": 4,
"employee_id": 1697,
"item_type": "Allowance",
"remarks": "",
"amount": "1000.0",
"rate_of_pay": "0.0",
"currency": "SGD"
}
]
}
Create Attendance Payment
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/attendance_payment
POST https://api.talenox.com/api/v2/payroll/attendance_payment
Accept: application/json
Content-Type: application/json
Authorization: Bearer 71b1d8b50d0f28e80adb7cac7efbff322f43f989
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 21
},
"pay_items": [
{
"employee_id": "K00001",
"item_type": "Regular Hours",
"amount": 1000,
"rate_of_pay": 20,
"no_of_hours_slash_days": 8,
"remarks": null
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| pay_items required | Below are pay items related fields |
| employee_id required | Employee ID |
| item_type required | Pay Item Type |
| remarks | Remarks |
| amount required | Amount |
| no_of_hours_slash_days | Number of days or hours worked |
| rate_of_pay | Rate of pay |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 21,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"pay_items": [
{
"id": 4,
"employee_id": 1698,
"item_type": "Regular Hours",
"remarks": null,
"amount": "1000.0",
"rate_of_pay": "20.0",
"no_of_hours_slash_days": "8.0",
"currency": "SGD"
}
]
}
Create Leave Payment or Deduction
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/leave_payment_or_deduction
POST https://api.talenox.com/api/v2/payroll/leave_payment_or_deduction
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6d3adff201491a0e63c0e50e0ab87a8733f47cc4
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 22
},
"pay_items": [
{
"employee_id": "K00001",
"item_type": "No Pay Leave(Unpaid Leave)",
"remarks": "1/9/2018",
"amount": 2000,
"override_working_days": 21
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| pay_items required | Below are pay items related fields |
| employee_id required | Employee ID |
| item_type required | Pay Item Type |
| remarks | Remarks |
| amount | If provided, the system will use this amount instead of the calculated value |
| override_working_days | If provided, will override the NPL calculation working days |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 22,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"pay_items": [
{
"id": 4,
"employee_id": 1699,
"item_type": "No Pay Leave(Unpaid Leave)",
"remarks": "01/09/2018",
"amount": "-2000.0",
"override_working_days": "21.0",
"currency": "SGD"
}
]
}
Create Payroll Payment
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/payroll_payment
POST https://api.talenox.com/api/v2/payroll/payroll_payment
Accept: application/json
Content-Type: application/json
Authorization: Bearer 691ef20afbdaa38645955316053c04b57c0220d0
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"with_pay_items": true
},
"employee_ids": [
"K00001"
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| month required | Month of payment |
| year required | Year of payment |
| period required | Period of payment |
| pay_group | Pay group of payment |
| with_pay_items | With Monthly pay items |
| employee_ids | Employee IDs to create payment for |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 4,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully created payment."
}
Create Recurring Payment
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/recurring_payment
POST https://api.talenox.com/api/v2/payroll/recurring_payment
Accept: application/json
Content-Type: application/json
Authorization: Bearer ae7ddd785b22b86c9ea78d706505670e234b9a07
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 17
},
"pay_items": [
{
"employee_id": "K00001",
"item_type": "Basic Pay",
"amount": 1000,
"remarks": null,
"actual_no_of_working_days": 22,
"total_no_of_working_days": 30
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| pay_items required | Below are pay items related fields |
| employee_id required | Employee ID |
| item_type required | Pay Item Type |
| remarks | Remarks |
| amount required | Amount |
| actual_no_of_working_days | Actual number of working days (If provided, the default calculated value will be overridden) |
| total_no_of_working_days | Total number of working days (If provided, the default calculated value will be overridden) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 17,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"pay_items": [
{
"id": 6,
"employee_id": 1694,
"item_type": "Salary/Wages",
"remarks": null,
"amount": "1000.0",
"actual_no_of_working_days": 22,
"total_no_of_working_days": 30,
"rate_of_pay": "Monthly",
"currency": "SGD"
}
]
}
Delete Adhoc Pay Item
Request
Endpoint
DELETE https://api.talenox.com/api/v2/payroll/adhoc_payment/:id
DELETE https://api.talenox.com/api/v2/payroll/adhoc_payment/3
Accept: application/json
Content-Type: application/json
Authorization: Bearer d79476f2bab966402b931ea73429b605aedb261a
Parameters
| Name | Description |
|---|---|
| id required | Pay item ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 3,
"employee_id": 1688,
"item_type": "Allowance",
"remarks": "",
"amount": "1000.0",
"rate_of_pay": "0.0",
"currency": "SGD"
}
Delete Attendance Pay Item
Request
Endpoint
DELETE https://api.talenox.com/api/v2/payroll/attendance_payment/:id
DELETE https://api.talenox.com/api/v2/payroll/attendance_payment/3
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6e8a680514b9c5c084cf12bf824df74c6d3d60c8
Parameters
| Name | Description |
|---|---|
| id required | Pay item ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 3,
"employee_id": 1689,
"item_type": "Regular Hours",
"remarks": null,
"amount": "1000.0",
"rate_of_pay": "20.0",
"no_of_hours_slash_days": "8.0",
"currency": "SGD"
}
Delete Leave Pay Item
Request
Endpoint
DELETE https://api.talenox.com/api/v2/payroll/leave_payment_or_deduction/:id
DELETE https://api.talenox.com/api/v2/payroll/leave_payment_or_deduction/3
Accept: application/json
Content-Type: application/json
Authorization: Bearer b9b19b51506bdef35ba09c2f0e76bee2e8b0ea31
Parameters
| Name | Description |
|---|---|
| id required | Pay item ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 3,
"employee_id": 1690,
"item_type": "No Pay Leave(Unpaid Leave)",
"remarks": "1/9/2018",
"amount": "2000.0",
"override_working_days": "21.0",
"currency": "SGD"
}
Delete Payroll Payment
Request
Endpoint
DELETE https://api.talenox.com/api/v2/payroll/payroll_payment/:id
DELETE https://api.talenox.com/api/v2/payroll/payroll_payment/7
Accept: application/json
Content-Type: application/json
Authorization: Bearer c28eb5466a930424074041489e55bccb1c876644
Parameters
| Name | Description |
|---|---|
| id required | Payment ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 7,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully deleted payment."
}
Delete Recurring Pay Item
Request
Endpoint
DELETE https://api.talenox.com/api/v2/payroll/recurring_payment/:id
DELETE https://api.talenox.com/api/v2/payroll/recurring_payment/5
Accept: application/json
Content-Type: application/json
Authorization: Bearer ae118e25c2c97c01e89006f639718ed4e689d96a
Parameters
| Name | Description |
|---|---|
| id required | Pay item ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 5,
"employee_id": 1687,
"item_type": "Salary/Wages",
"remarks": null,
"amount": "1000.0",
"actual_no_of_working_days": 20.0,
"total_no_of_working_days": 20.0,
"rate_of_pay": "Monthly",
"currency": "SGD"
}
Export Payroll
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/export_payroll
POST https://api.talenox.com/api/v2/payroll/export_payroll
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1e90a1f935ffee13dcdd75b035f465ebafecf7b2
Parameters
{
"month": "September",
"year": 2018,
"period": "Whole Month"
}
| Name | Description |
|---|---|
| month required | Month of payment |
| year required | Year of payment |
| period required | Period of payment |
| pay_date | Pay date |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payslips": [
{
"ytd_gross_salary": "$1,000.00",
"ytd_bonus": "$0.00",
"ytd_net_payment": "$799.50",
"total_recurring_full": "$1,000.00",
"total_recurring_prorated": "$1,000.00",
"total_adhoc": "$0.00",
"total_attendance": "$0.00",
"total_gross": "$1,000.00",
"total_bonus": "$0.00",
"total_net_payment": "$799.50",
"total_deductions": "$0.00",
"ytd_cpf_employee": "$200.00",
"ytd_cpf_employer": "$170.00",
"total_sg_fwl": "$0.00",
"total_sg_cpf_owage": "$1,000.00",
"total_sg_cpf_awage": "$0.00",
"total_sg_cpf_employee": "$200.00",
"total_sg_cpf_employer": "$170.00",
"total_sg_cpf_donation": "$0.50",
"total_sg_additional_cpf_donation": "$0.00",
"total_sg_cpf_sdl": "$2.50",
"employee_final_cpf": "$200.50",
"sg_total_sdl_contributable": "$1,000.00",
"id": 1700,
"employee_id": "K00001",
"name": "Colby Cremin",
"job_title": null,
"department": null,
"country_code": "SG",
"currency_unit": "$",
"attendance_pay_items": [],
"recurring_pay_items": [
{
"id": 8,
"employee_id": 1700,
"currency_id": 1,
"currency_value": "sgd",
"item_type": "Salary/Wages",
"name": "Basic Pay",
"amount": "1000.0",
"prorated_amount": "1000.0",
"remarks": null,
"preferences": {
"sg_cpf": true,
"sg_sdl": true,
"sg_shg": true,
"sg_tax": true
},
"working_days_setting": {
"total_no_of_working_days": 20.0,
"actual_no_of_working_days": 20.0
},
"custom_pay_item_id": 38020,
"gross_net_settings": "gross",
"is_statutory_prorated": false,
"statutory_prorated_amount": "1000.0",
"statutory_prorated_date": null,
"currency_rate": "1.0"
}
],
"adhoc_pay_items": [],
"overtime_pay": "0.0",
"payment_method": "Bank Transfer",
"published": false,
"payslip_pay_date": null,
"payslip_remarks": "",
"payslip_remarks_maximum_length": 500,
"total_leave_pay": "0.0",
"total_reimbursements": "0.0",
"total_basic_salary": "1000.0",
"total_allowances": "0.0",
"total_commissions": "0.0",
"total_directors_fees": "0.0",
"total_leave_payments_or_deductions": "0.0",
"total_others": "0.0",
"total_employee_benefits": "0.0",
"total_other_pay_items_amount": "0.0",
"sg_cpf_donation_type": "CDAC",
"sg_additional_cpf_donation_type": "N/A",
"total_sg_cpf_donation_mbmf_mbf_amount": "0.0",
"total_sg_cpf_donation_mbmf_mendaki_amount": "0.0",
"total_sg_additional_cpf_donation_mbmf_mbf_amount": "0.0",
"total_sg_additional_cpf_donation_mbmf_mendaki_amount": "0.0",
"total_sums_owage_awage": {
"awage": "0.0",
"owage": "1000.0"
},
"sg_cpf_contribution_type": "Year2018::Citizen::Age50",
"formatted_cpf_contribution_type": "Citizen - 55",
"total_sg_cpf_owage_subjected": "1000.0",
"total_sg_cpf_awage_subjected": "0.0",
"total_sg_cpf_employee_awage": "0.0",
"total_sg_cpf_employer_awage": "0.0",
"total_sg_cpf_employee_owage": "200.0",
"total_sg_cpf_employer_owage": "170.0",
"sg_total_shg_contributable": "1000.0",
"total_sg_mandatory_cpf_employee": "200.0",
"total_sg_mandatory_cpf_employer": "170.0",
"total_sg_voluntary_cpf_employee": "0.0",
"total_sg_voluntary_cpf_employer": "0.0",
"total_sg_voluntary_cpf_employee_rate": "0.0",
"total_sg_voluntary_cpf_employer_rate": "0.0",
"total_sg_cpf_employee_employer": "370.0",
"total_sg_voluntary_cpf_employer_medisave": "0.0",
"total_cpf_in_lieu_awage": "0.0",
"total_cpf_in_lieu_owage": "0.0",
"total_taxable": "1000.0",
"payment_reconciliation": "0.0",
"total_sg_cpf_withholding": "200.5",
"total_net_payment_converted": "799.5",
"total_recurring_full_converted": "1000.0",
"total_recurring_prorated_converted": "1000.0",
"total_adhoc_converted": "0.0",
"total_attendance_converted": "0.0",
"total_leave_payments_or_deductions_converted": "0.0",
"total_deductions_converted": "0.0",
"total_gross_converted": "1000.0",
"total_bonus_converted": "0.0",
"total_leave_pay_converted": "0.0",
"total_reimbursements_converted": "0.0",
"total_allowances_converted": "0.0",
"total_basic_salary_converted": "1000.0",
"total_commissions_converted": "0.0",
"total_directors_fees_converted": "0.0",
"total_taxable_converted": "1000.0",
"total_others_converted": "0.0",
"total_employee_benefits_converted": "0.0",
"total_other_pay_items_amount_converted": "0.0",
"total_sg_cpf_employee_owage_reverted": "200.0",
"total_sg_cpf_employee_awage_reverted": "0.0",
"total_sg_cpf_employee_reverted": "200.0",
"total_sg_mandatory_cpf_employee_reverted": "200.0",
"total_sg_mandatory_cpf_employer_reverted": "170.0",
"total_sg_voluntary_cpf_employee_reverted": "0.0",
"total_sg_voluntary_cpf_employer_reverted": "0.0",
"total_sg_voluntary_cpf_employer_medisave_reverted": "0.0",
"total_sg_cpf_employer_owage_reverted": "170.0",
"total_sg_cpf_employer_awage_reverted": "0.0",
"total_sg_cpf_employer_reverted": "170.0",
"total_sg_cpf_sdl_reverted": "2.5",
"total_sg_cpf_awage_reverted": "0.0",
"total_sg_cpf_owage_reverted": "1000.0",
"total_sg_cpf_donation_reverted": "0.5",
"payment_reconciliation_reverted": "0.0",
"total_sg_cpf_donation_mbmf_mbf_amount_reverted": "0.0",
"total_sg_cpf_donation_mbmf_mendaki_amount_reverted": "0.0",
"total_sg_additional_cpf_donation_mbmf_mbf_amount_reverted": "0.0",
"total_sg_additional_cpf_donation_mbmf_mendaki_amount_reverted": "0.0",
"total_sg_additional_cpf_donation_reverted": "0.0",
"total_sg_fwl_reverted": "0.0",
"total_sg_cpf_withholding_reverted": "200.5",
"employee_final_cpf_reverted": "200.5",
"total_cpf_in_lieu_owage_reverted": "0.0",
"total_cpf_in_lieu_awage_reverted": "0.0",
"total_recurring": "1000.0",
"total_recurring_converted": "1000.0"
}
],
"total_gross_salary": "$1,000.00",
"total_ytd_gross_salary": "$1,000.00",
"total_ytd_bonus": "$0.00",
"total_ytd_net_payment": "$799.50",
"total_ytd_cpf_employee": "$200.00",
"total_ytd_cpf_employer": "$170.00",
"month": "September",
"year": "2018",
"company_payroll_setting": {
"id": 459,
"company_id": 459,
"employers_contribute_shg_on_behalf": "employers_do_not_contribute_shg_on_behalf",
"payslip_update_on_address_change": "need_to_update_payslips_for_address_change",
"payslip_update_on_image_change": "need_to_update_payslips_for_image_change",
"payslip_footer_message": "show",
"payslip_period_display": "show_to_from_dates",
"payslip_ytd_use_gross_salary": "show_ytd_gross_salary",
"payslip_ytd_display": "show_ytd",
"payslip_employee_id_display": "show_id",
"payslip_employee_address_display": "show_address",
"payslip_leave_balance": "show_leave_balance",
"hk_mpf_first_contribution": "first_contribution_default_payment",
"npl_rounding": "no_rounding",
"sick_leave_rounding": "no_rounding",
"maternity_leave_rounding": "no_rounding",
"paternity_leave_rounding": "no_rounding",
"annual_leave_rounding": "no_rounding",
"created_at": "2026-06-22T03:26:58.972Z",
"updated_at": "2026-06-22T03:26:59.012Z",
"payslip_job_display": "show_job",
"working_days_rounding": "no_rounding",
"overtime_contribute_to_adw": false,
"leave_encashment_settings": "disabled",
"payslip_employee_company_id_display": "hide_emp_company_id",
"currency_conversion_enabled": true,
"npl_decimal_precision": 2,
"sick_leave_decimal_precision": 2,
"maternity_leave_decimal_precision": 2,
"paternity_leave_decimal_precision": 2,
"annual_leave_decimal_precision": 2,
"payslip_payment_method_display": "show_payment_method",
"payslips_sort_settings": "employee_id",
"rate_of_pay_decimal_precision": 4,
"payslip_display_country_name": true,
"tax_ir21_filing_reminder_email_notification": "enable_notification",
"hk_statutory_holiday_pay_settings": "enabled",
"payslip_sdl_display": "hide_sdl",
"payslip_branch_display": "show_branch",
"idr_format_toggle": 0,
"payslip_withholding_display": "show_withholding",
"bank_file_holiday_setting": "follow_holiday_state",
"apex_enabled": true,
"my_2023_tax_settings": "new_rate",
"attendance_rop_follow_working_hours_days_calculation": false,
"memeco_payslip_enabled": null,
"payslip_password_encryption_settings": "birthdate",
"pay_code_enabled": false,
"payslip_field_header_display": false,
"payslip_base_salary_display": false,
"disable_reconciliation": false,
"hk_adw_setting": "employment_ordinance_2007",
"payslip_employee_name_display": "employee_name",
"disable_pph21": false,
"enable_cpf_platform_worker_scheme": false,
"overall_report_group_pis_by_remark_enabled": true,
"exclude_perkeso_relief_from_mtd": false,
"payslip_include_state_country_in_address": false,
"tax_ir56f_filing_reminder_email_notification": "enable_notification",
"enable_empf_submission": false,
"payslip_publish_button": "show",
"my_mid_month_proration_setting": "follow_company_setting",
"my_orp_proration_setting": "follow_company_setting",
"payslip_chinese_name_display": false,
"multi_currency_report_enabled": false,
"pwc_frontend_show_prorated_amount_only": false,
"payslip_format": "pretty_much_everything",
"payslip_department_display": "show_dept",
"custom_payslip_send_days_before_pay_date": 0,
"payslip_employee_identification_label": "nric_fin",
"manulife_3_plans_enabled": false,
"disbursement_enabled": false,
"auto_hold_no_bank_account_enabled": true
}
}
Get Payroll Payment
Request
Endpoint
GET https://api.talenox.com/api/v2/payroll/payroll_payment/:id
GET https://api.talenox.com/api/v2/payroll/payroll_payment/6
Accept: application/json
Content-Type: application/json
Authorization: Bearer d763aa7599249d677c02eca266cd7c2fab5d7e6a
Parameters
| Name | Description |
|---|---|
| id required | Payment ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 6,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"created_by_webhook": true,
"bank_file_exported": false,
"bank_file_value_date": null,
"cheque_payment_exported": false,
"cheque_payment_value_date": null,
"recurring_pay_items": [
{
"id": 3,
"employee_id": 1683,
"item_type": "Salary/Wages",
"remarks": null,
"amount": "1000.0",
"actual_no_of_working_days": 20.0,
"total_no_of_working_days": 20.0,
"rate_of_pay": "Monthly",
"currency": "SGD"
}
],
"adhoc_pay_items": [
{
"id": 1,
"employee_id": 1683,
"item_type": "Allowance",
"remarks": "",
"amount": "1000.0",
"rate_of_pay": "0.0",
"currency": "SGD"
}
],
"attendance_pay_items": [
{
"id": 1,
"employee_id": 1683,
"item_type": "Regular Hours",
"remarks": null,
"amount": "1000.0",
"rate_of_pay": "20.0",
"no_of_hours_slash_days": "8.0",
"currency": "SGD"
}
],
"leave_pay_items": [
{
"id": 1,
"employee_id": 1683,
"item_type": "No Pay Leave(Unpaid Leave)",
"remarks": "1/9/2018",
"amount": "2000.0",
"override_working_days": "21.0",
"currency": "SGD"
}
]
}
Get Payslips Data
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/get_payslips_data
POST https://api.talenox.com/api/v2/payroll/get_payslips_data
Accept: application/json
Content-Type: application/json
Authorization: Bearer bedd5013105bc9ecb0f2ca63e81e0c96da470a3f
Parameters
{
"month": "September",
"year": 2018,
"employee_ids": [
"K00001"
]
}
| Name | Description |
|---|---|
| employee_ids | Employee IDs |
| month required | Month of payment |
| year required | Year of payment |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payslips": [
{
"ytd_gross_salary": "$1,000.00",
"ytd_bonus": "$0.00",
"ytd_net_payment": "$799.50",
"total_recurring_full": "$1,000.00",
"total_recurring_prorated": "$1,000.00",
"total_adhoc": "$0.00",
"total_attendance": "$0.00",
"total_gross": "$1,000.00",
"total_bonus": "$0.00",
"total_net_payment": "$799.50",
"total_deductions": "$0.00",
"ytd_cpf_employee": "$200.00",
"ytd_cpf_employer": "$170.00",
"total_sg_fwl": "$0.00",
"total_sg_cpf_owage": "$1,000.00",
"total_sg_cpf_awage": "$0.00",
"total_sg_cpf_employee": "$200.00",
"total_sg_cpf_employer": "$170.00",
"total_sg_cpf_donation": "$0.50",
"total_sg_additional_cpf_donation": "$0.00",
"total_sg_cpf_sdl": "$2.50",
"employee_final_cpf": "$200.50",
"sg_total_sdl_contributable": "$1,000.00",
"id": 1703,
"employee_id": "K00001",
"name": "Pricilla Dare",
"job_title": null,
"department": null,
"country_code": "SG",
"currency_unit": "$",
"attendance_pay_items": [],
"recurring_pay_items": [
{
"id": 11,
"employee_id": 1703,
"currency_id": 1,
"currency_value": "sgd",
"item_type": "Salary/Wages",
"name": "Basic Pay",
"amount": "1000.0",
"prorated_amount": "1000.0",
"remarks": null,
"preferences": {
"sg_cpf": true,
"sg_sdl": true,
"sg_shg": true,
"sg_tax": true
},
"working_days_setting": {
"total_no_of_working_days": 20.0,
"actual_no_of_working_days": 20.0
},
"custom_pay_item_id": 38272,
"gross_net_settings": "gross",
"is_statutory_prorated": false,
"statutory_prorated_amount": "1000.0",
"statutory_prorated_date": null,
"currency_rate": "1.0"
}
],
"adhoc_pay_items": [],
"overtime_pay": "0.0",
"payment_method": "Bank Transfer",
"published": false,
"payslip_pay_date": null,
"payslip_remarks": "",
"payslip_remarks_maximum_length": 500,
"total_leave_pay": "0.0",
"total_reimbursements": "0.0",
"total_basic_salary": "1000.0",
"total_allowances": "0.0",
"total_commissions": "0.0",
"total_directors_fees": "0.0",
"total_leave_payments_or_deductions": "0.0",
"total_others": "0.0",
"total_employee_benefits": "0.0",
"total_other_pay_items_amount": "0.0",
"sg_cpf_donation_type": "CDAC",
"sg_additional_cpf_donation_type": "N/A",
"total_sg_cpf_donation_mbmf_mbf_amount": "0.0",
"total_sg_cpf_donation_mbmf_mendaki_amount": "0.0",
"total_sg_additional_cpf_donation_mbmf_mbf_amount": "0.0",
"total_sg_additional_cpf_donation_mbmf_mendaki_amount": "0.0",
"total_sums_owage_awage": {
"awage": "0.0",
"owage": "1000.0"
},
"sg_cpf_contribution_type": "Year2018::Citizen::Age50",
"formatted_cpf_contribution_type": "Citizen - 55",
"total_sg_cpf_owage_subjected": "1000.0",
"total_sg_cpf_awage_subjected": "0.0",
"total_sg_cpf_employee_awage": "0.0",
"total_sg_cpf_employer_awage": "0.0",
"total_sg_cpf_employee_owage": "200.0",
"total_sg_cpf_employer_owage": "170.0",
"sg_total_shg_contributable": "1000.0",
"total_sg_mandatory_cpf_employee": "200.0",
"total_sg_mandatory_cpf_employer": "170.0",
"total_sg_voluntary_cpf_employee": "0.0",
"total_sg_voluntary_cpf_employer": "0.0",
"total_sg_voluntary_cpf_employee_rate": "0.0",
"total_sg_voluntary_cpf_employer_rate": "0.0",
"total_sg_cpf_employee_employer": "370.0",
"total_sg_voluntary_cpf_employer_medisave": "0.0",
"total_cpf_in_lieu_awage": "0.0",
"total_cpf_in_lieu_owage": "0.0",
"total_taxable": "1000.0",
"payment_reconciliation": "0.0",
"total_sg_cpf_withholding": "200.5",
"total_net_payment_converted": "799.5",
"total_recurring_full_converted": "1000.0",
"total_recurring_prorated_converted": "1000.0",
"total_adhoc_converted": "0.0",
"total_attendance_converted": "0.0",
"total_leave_payments_or_deductions_converted": "0.0",
"total_deductions_converted": "0.0",
"total_gross_converted": "1000.0",
"total_bonus_converted": "0.0",
"total_leave_pay_converted": "0.0",
"total_reimbursements_converted": "0.0",
"total_allowances_converted": "0.0",
"total_basic_salary_converted": "1000.0",
"total_commissions_converted": "0.0",
"total_directors_fees_converted": "0.0",
"total_taxable_converted": "1000.0",
"total_others_converted": "0.0",
"total_employee_benefits_converted": "0.0",
"total_other_pay_items_amount_converted": "0.0",
"total_sg_cpf_employee_owage_reverted": "200.0",
"total_sg_cpf_employee_awage_reverted": "0.0",
"total_sg_cpf_employee_reverted": "200.0",
"total_sg_mandatory_cpf_employee_reverted": "200.0",
"total_sg_mandatory_cpf_employer_reverted": "170.0",
"total_sg_voluntary_cpf_employee_reverted": "0.0",
"total_sg_voluntary_cpf_employer_reverted": "0.0",
"total_sg_voluntary_cpf_employer_medisave_reverted": "0.0",
"total_sg_cpf_employer_owage_reverted": "170.0",
"total_sg_cpf_employer_awage_reverted": "0.0",
"total_sg_cpf_employer_reverted": "170.0",
"total_sg_cpf_sdl_reverted": "2.5",
"total_sg_cpf_awage_reverted": "0.0",
"total_sg_cpf_owage_reverted": "1000.0",
"total_sg_cpf_donation_reverted": "0.5",
"payment_reconciliation_reverted": "0.0",
"total_sg_cpf_donation_mbmf_mbf_amount_reverted": "0.0",
"total_sg_cpf_donation_mbmf_mendaki_amount_reverted": "0.0",
"total_sg_additional_cpf_donation_mbmf_mbf_amount_reverted": "0.0",
"total_sg_additional_cpf_donation_mbmf_mendaki_amount_reverted": "0.0",
"total_sg_additional_cpf_donation_reverted": "0.0",
"total_sg_fwl_reverted": "0.0",
"total_sg_cpf_withholding_reverted": "200.5",
"employee_final_cpf_reverted": "200.5",
"total_cpf_in_lieu_owage_reverted": "0.0",
"total_cpf_in_lieu_awage_reverted": "0.0",
"total_recurring": "1000.0",
"total_recurring_converted": "1000.0"
}
],
"total_gross_salary": "$1,000.00",
"total_ytd_gross_salary": "$1,000.00",
"total_ytd_bonus": "$0.00",
"total_ytd_net_payment": "$799.50",
"total_ytd_cpf_employee": "$200.00",
"total_ytd_cpf_employer": "$170.00",
"month": "September",
"year": "2018",
"company_payroll_setting": {
"id": 462,
"company_id": 462,
"employers_contribute_shg_on_behalf": "employers_do_not_contribute_shg_on_behalf",
"payslip_update_on_address_change": "need_to_update_payslips_for_address_change",
"payslip_update_on_image_change": "need_to_update_payslips_for_image_change",
"payslip_footer_message": "show",
"payslip_period_display": "show_to_from_dates",
"payslip_ytd_use_gross_salary": "show_ytd_gross_salary",
"payslip_ytd_display": "show_ytd",
"payslip_employee_id_display": "show_id",
"payslip_employee_address_display": "show_address",
"payslip_leave_balance": "show_leave_balance",
"hk_mpf_first_contribution": "first_contribution_default_payment",
"npl_rounding": "no_rounding",
"sick_leave_rounding": "no_rounding",
"maternity_leave_rounding": "no_rounding",
"paternity_leave_rounding": "no_rounding",
"annual_leave_rounding": "no_rounding",
"created_at": "2026-06-22T03:27:04.913Z",
"updated_at": "2026-06-22T03:27:04.951Z",
"payslip_job_display": "show_job",
"working_days_rounding": "no_rounding",
"overtime_contribute_to_adw": false,
"leave_encashment_settings": "disabled",
"payslip_employee_company_id_display": "hide_emp_company_id",
"currency_conversion_enabled": true,
"npl_decimal_precision": 2,
"sick_leave_decimal_precision": 2,
"maternity_leave_decimal_precision": 2,
"paternity_leave_decimal_precision": 2,
"annual_leave_decimal_precision": 2,
"payslip_payment_method_display": "show_payment_method",
"payslips_sort_settings": "employee_id",
"rate_of_pay_decimal_precision": 4,
"payslip_display_country_name": true,
"tax_ir21_filing_reminder_email_notification": "enable_notification",
"hk_statutory_holiday_pay_settings": "enabled",
"payslip_sdl_display": "hide_sdl",
"payslip_branch_display": "show_branch",
"idr_format_toggle": 0,
"payslip_withholding_display": "show_withholding",
"bank_file_holiday_setting": "follow_holiday_state",
"apex_enabled": true,
"my_2023_tax_settings": "new_rate",
"attendance_rop_follow_working_hours_days_calculation": false,
"memeco_payslip_enabled": null,
"payslip_password_encryption_settings": "birthdate",
"pay_code_enabled": false,
"payslip_field_header_display": false,
"payslip_base_salary_display": false,
"disable_reconciliation": false,
"hk_adw_setting": "employment_ordinance_2007",
"payslip_employee_name_display": "employee_name",
"disable_pph21": false,
"enable_cpf_platform_worker_scheme": false,
"overall_report_group_pis_by_remark_enabled": true,
"exclude_perkeso_relief_from_mtd": false,
"payslip_include_state_country_in_address": false,
"tax_ir56f_filing_reminder_email_notification": "enable_notification",
"enable_empf_submission": false,
"payslip_publish_button": "show",
"my_mid_month_proration_setting": "follow_company_setting",
"my_orp_proration_setting": "follow_company_setting",
"payslip_chinese_name_display": false,
"multi_currency_report_enabled": false,
"pwc_frontend_show_prorated_amount_only": false,
"payslip_format": "pretty_much_everything",
"payslip_department_display": "show_dept",
"custom_payslip_send_days_before_pay_date": 0,
"payslip_employee_identification_label": "nric_fin",
"manulife_3_plans_enabled": false,
"disbursement_enabled": false,
"auto_hold_no_bank_account_enabled": true
}
}
Get Payslips PDF
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/get_payslips
POST https://api.talenox.com/api/v2/payroll/get_payslips
Accept: application/json
Content-Type: application/json
Authorization: Bearer 260f7c6ef895444ad7d404c15ceeebb2fd37ae70
Parameters
{
"month": "September",
"year": 2018,
"employee_ids": [
1701
]
}
| Name | Description |
|---|---|
| employee_ids required | Employee IDs |
| month required | Month of payment |
| year required | Year of payment |
| include_employee_data | Returns employee data along with payslip URL |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"1701": null
}
]
Get Payslips PDF with Employee Details
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/get_payslips
POST https://api.talenox.com/api/v2/payroll/get_payslips
Accept: application/json
Content-Type: application/json
Authorization: Bearer 37bb47e4f208f11a9b598548376839b82b6c36c7
Parameters
{
"month": "September",
"year": 2018,
"employee_ids": [
1702
],
"include_employee_data": true
}
| Name | Description |
|---|---|
| employee_ids required | Employee IDs |
| month required | Month of payment |
| year required | Year of payment |
| include_employee_data | Returns employee data along with payslip URL |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"1702": {
"payslip_url": null,
"employee_id": null,
"employee_first_name": null,
"employee_last_name": null,
"employee_birthdate": null
}
}
]
List All Payroll Payments
Request
Endpoint
GET https://api.talenox.com/api/v2/payroll/payroll_payment
GET https://api.talenox.com/api/v2/payroll/payroll_payment?month=September&year=2018&created_by_webhook=true
Accept: application/json
Content-Type: application/json
Authorization: Bearer 185d815c59eb054e120c3d36a9d889cbb37dfb1f
Parameters
month: September
year: 2018
created_by_webhook: true
| Name | Description |
|---|---|
| month required | Month of payment |
| year required | Year of payment |
| created_by_webhook | Filter for querying only the payments created by webhook |
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"payment_id": 5,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"created_by_webhook": true,
"bank_file_exported": false,
"bank_file_value_date": null,
"cheque_payment_exported": false,
"cheque_payment_value_date": null,
"recurring_pay_items": [],
"adhoc_pay_items": [],
"attendance_pay_items": [],
"leave_pay_items": []
}
]
Process Payroll Payment
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/payroll_payment/:id/process
POST https://api.talenox.com/api/v2/payroll/payroll_payment/8/process
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6eff94c6844409c65627197e173919809c3e75d1
Parameters
| Name | Description |
|---|---|
| id required | Payment ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 8,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Processed",
"message": "Successfully processed payment."
}
Publish Payslips
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/publish_payslips
POST https://api.talenox.com/api/v2/payroll/publish_payslips
Accept: application/json
Content-Type: application/json
Authorization: Bearer f85eb929a215b314ad55ef00d75b003cf5b77a25
Parameters
{
"month": "September",
"year": "2018",
"payslip_pay_date": "30/09/2018",
"payslip_send_on_pd_setting": 0,
"attach_payslip_to_email": 0
}
| Name | Description |
|---|---|
| month required | Month of payment |
| year required | Year of payment |
| payslip_pay_date required | Payslip Pay Date |
| payslip_send_on_pd_setting required | payslip Send On Pay Date Setting |
| attach_payslip_to_email required | Attach Payslip To Email |
| employee_ids | Employee IDs |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Payslips published",
"published": true
}
Pull Leave Applications
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/pull_leave_applications
POST https://api.talenox.com/api/v2/payroll/pull_leave_applications
Accept: application/json
Content-Type: application/json
Authorization: Bearer fb3e845cdde683e80d097942c03936d6b906bd37
Parameters
{
"payment": {
"month": "September",
"year": 2018,
"period": "Whole Month",
"pay_group": null
}
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Leave applications pulled successfully"
}
Set Payment to Draft
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/payroll_payment/:id/draft
POST https://api.talenox.com/api/v2/payroll/payroll_payment/9/draft
Accept: application/json
Content-Type: application/json
Authorization: Bearer 8f5cc0ca07711a0e3d6bfd89115328c66f23b0ca
Parameters
| Name | Description |
|---|---|
| id required | Payment ID |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 9,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment."
}
Unpublish Payslips
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/unpublish_payslips
POST https://api.talenox.com/api/v2/payroll/unpublish_payslips
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5c323f3b4c109dfcd35fa33991b6f247231bcad6
Parameters
{
"month": "September",
"year": "2018"
}
| Name | Description |
|---|---|
| month required | Month of payment |
| year required | Year of payment |
| employee_ids | Employee IDs |
Response
content-type: text/plain; charset=utf-8
200 OK
Update Payment Settings
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/update_payment_settings
POST https://api.talenox.com/api/v2/payroll/update_payment_settings
Accept: application/json
Content-Type: application/json
Authorization: Bearer cd7d2b8acae830d99a9649097c1f12e2224b71b9
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 14
},
"settings": [
{
"employee_id": "K00001",
"is_bank_payment": false,
"selected_cost_centre_id": 47,
"employees_payment_methods": "Bank Transfer"
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| settings required | Settings related fields |
| employee_id | Employee ID |
| employees_payment_methods | Indicate payment mode for employee: Bank/Cheque/Forex/Cash payment |
| selected_cost_centre_id | Cost centre ID to process the employee under (defaults to default cost centre) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 14,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"settings": [
{
"employee_id": 1691,
"selected_cost_centre_id": 47,
"employees_payment_methods": "Bank Transfer"
}
]
}
Update without payment methods - is_bank_payment set to false
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/update_payment_settings
POST https://api.talenox.com/api/v2/payroll/update_payment_settings
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6a1c1f2b7670e32b02cb98b0a2617f15c38539c2
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 16
},
"settings": [
{
"employee_id": "K00001",
"is_bank_payment": false,
"selected_cost_centre_id": 51
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| settings required | Settings related fields |
| employee_id | Employee ID |
| employees_payment_methods | Indicate payment mode for employee: Bank/Cheque/Forex/Cash payment |
| selected_cost_centre_id | Cost centre ID to process the employee under (defaults to default cost centre) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 16,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"settings": [
{
"employee_id": 1693,
"selected_cost_centre_id": 51,
"employees_payment_methods": "Cheque"
}
]
}
Update without payment methods - is_bank_payment set to true
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/update_payment_settings
POST https://api.talenox.com/api/v2/payroll/update_payment_settings
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3f485f6f21046df9e9603f0d37f0651f8c31db2c
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 15
},
"settings": [
{
"employee_id": "K00001",
"is_bank_payment": true,
"selected_cost_centre_id": 49
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| settings required | Settings related fields |
| employee_id | Employee ID |
| employees_payment_methods | Indicate payment mode for employee: Bank/Cheque/Forex/Cash payment |
| selected_cost_centre_id | Cost centre ID to process the employee under (defaults to default cost centre) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 15,
"month": "September",
"year": "2018",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"settings": [
{
"employee_id": 1692,
"selected_cost_centre_id": 49,
"employees_payment_methods": "Bank Transfer"
}
]
}
should preserve statutory proration settings for PR effective employees (currently demonstrates bug)
Request
Endpoint
POST https://api.talenox.com/api/v2/payroll/recurring_payment
POST https://api.talenox.com/api/v2/payroll/recurring_payment
Accept: application/json
Content-Type: application/json
Authorization: Bearer bcf81979a8edf16c944ff54ab48456546793c215
Parameters
{
"payment": {
"year": 2018,
"month": "September",
"period": "Whole Month",
"pay_group": null,
"id": 19
},
"pay_items": [
{
"employee_id": "PR001",
"item_type": "Basic Pay",
"amount": 5000,
"remarks": null,
"actual_no_of_working_days": 22,
"total_no_of_working_days": 30
}
]
}
| Name | Description |
|---|---|
| payment required | Payment related fields |
| id | Payment ID (If not specified, last payment created by API will be used) |
| month | Month of payment (Mandatory if id not specified) |
| year | Year of payment (Mandatory if id not specified) |
| period | Period of payment (Mandatory if id not specified) |
| pay_group | Pay group of payment |
| pay_items required | Below are pay items related fields |
| employee_id required | Employee ID |
| item_type required | Pay Item Type |
| remarks | Remarks |
| amount required | Amount |
| actual_no_of_working_days | Actual number of working days (If provided, the default calculated value will be overridden) |
| total_no_of_working_days | Total number of working days (If provided, the default calculated value will be overridden) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"payment_id": 19,
"month": "September",
"year": "2023",
"period": "Whole Month",
"pay_group": null,
"status": "Draft",
"message": "Successfully updated payment.",
"pay_items": [
{
"id": 7,
"employee_id": 1696,
"item_type": "Salary/Wages",
"remarks": null,
"amount": "5000.0",
"actual_no_of_working_days": 22,
"total_no_of_working_days": 30,
"rate_of_pay": "Monthly",
"currency": "SGD"
}
]
}
User Info (OAuth)
Get user info
Request
Endpoint
GET https://api.talenox.com/api/v2/user_info
GET https://api.talenox.com/api/v2/user_info
Accept: application/json
Content-Type: application/json
Authorization: Bearer QQ6l5LxvgF7b6qi1jsPXArNpBAlj028d-VZq5rbh0i4
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"company": {
"id": 484
},
"employee": {
"id": 1836,
"employee_id": "0fslqa7oos"
}
}
Working Days
Create Working Day
Request
Endpoint
POST https://api.talenox.com/api/v2/working_days
POST https://api.talenox.com/api/v2/working_days
Accept: application/json
Content-Type: application/json
Authorization: Bearer 45825f5d5186abb970ca0b281bff3cc42448fbd6
Parameters
{
"working_day": {
"name": "New working day",
"company_default": false,
"week_schedule": [
"not_working",
"second_half",
"full_day",
"full_day",
"full_day",
"first_half",
"not_working"
],
"employee_ids": [
1970
]
}
}
| Name | Description |
|---|---|
| name required | Working Day Name |
| company_default | Company Default |
| week_schedule required | Week schedule (An array of 7 elements corresponding to each day in a week starting from Sunday, supported values are not_working, full_day, first_half, second_half, rest_day[only for SG]) |
| employee_ids | Employee IDs (This will override the working day's employee) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 182,
"name": "New working day",
"employee_ids": [
1970
],
"no_of_employees": 1,
"week_schedule": [
"not_working",
"second_half",
"full_day",
"full_day",
"full_day",
"first_half",
"not_working"
],
"company_default": false
}
Delete Working Day
Request
Endpoint
DELETE https://api.talenox.com/api/v2/working_days/:id
DELETE https://api.talenox.com/api/v2/working_days/194
Accept: application/json
Content-Type: application/json
Authorization: Bearer cd8edb1005581ca83a65d139982fb68bf4fbc4c5
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted working day 5"
}
Get Working Day
Request
Endpoint
GET https://api.talenox.com/api/v2/working_days/:id
GET https://api.talenox.com/api/v2/working_days/184
Accept: application/json
Content-Type: application/json
Authorization: Bearer 37c5272e06c37a6ca3e8f30196406e24a07c5aaf
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 184,
"name": "1",
"employee_ids": [],
"no_of_employees": 0,
"week_schedule": [
"not_working",
"full_day",
"full_day",
"full_day",
"full_day",
"full_day",
"not_working"
],
"company_default": false
}
List Working Days
Request
Endpoint
GET https://api.talenox.com/api/v2/working_days
GET https://api.talenox.com/api/v2/working_days
Accept: application/json
Content-Type: application/json
Authorization: Bearer f08ea7c71b05fc01a536ab2689f15fb3ae41c66a
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 179,
"name": "Test Working Day",
"employee_ids": [],
"no_of_employees": 0,
"week_schedule": [
"not_working",
"full_day",
"full_day",
"full_day",
"full_day",
"full_day",
"not_working"
],
"company_default": true
}
]
Update Working Day
Request
Endpoint
PUT https://api.talenox.com/api/v2/working_days/:id
PUT https://api.talenox.com/api/v2/working_days/186
Accept: application/json
Content-Type: application/json
Authorization: Bearer 287983cbdb0c3b9d4d2e4c4add6f389de4915f7c
Parameters
{
"working_day": {
"name": "Change name",
"week_schedule": [
"not_working",
"full_day",
"full_day",
"full_day",
"full_day",
"not_working",
"not_working"
]
}
}
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 186,
"name": "Change name",
"employee_ids": [],
"no_of_employees": 0,
"week_schedule": [
"not_working",
"full_day",
"full_day",
"full_day",
"full_day",
"not_working",
"not_working"
],
"company_default": false
}
Working Hours
Create Working Hour
Request
Endpoint
POST https://api.talenox.com/api/v2/working_hours
POST https://api.talenox.com/api/v2/working_hours
Accept: application/json
Content-Type: application/json
Authorization: Bearer 52c721976fca775f2ac3c30d384451b1ac000944
Parameters
{
"working_hour": {
"name": "New Working Hour",
"company_default": false,
"hours_per_week": 44.0,
"employee_ids": [
2050
]
}
}
| Name | Description |
|---|---|
| name required | Working Hour Name |
| company_default | Company Default |
| hours_per_week required | Hours Per Week |
| hours_per_day required | Hours per day (For Part Time ADW Calculation) |
| employee_ids | Employee IDs (This will override the Working Hour's employee) |
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 185,
"name": "New Working Hour",
"employee_ids": [
2050
],
"no_of_employees": 1,
"hours_per_week": "44.0",
"company_default": false,
"hours_per_day": 8.0,
"timetracker_overtime_hours_limit_enabled": true,
"timetracker_salary_threshold_for_overtime_enabled": true
}
Delete Working Hour
Request
Endpoint
DELETE https://api.talenox.com/api/v2/working_hours/:id
DELETE https://api.talenox.com/api/v2/working_hours/195
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6f7a55091231b83cbce8326b488ff30160d097e5
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"message": "Successfully deleted working hour Default"
}
Get Working Hour
Request
Endpoint
GET https://api.talenox.com/api/v2/working_hours/:id
GET https://api.talenox.com/api/v2/working_hours/187
Accept: application/json
Content-Type: application/json
Authorization: Bearer e6ab133092d32361a93355ea7caa3a05f9434ca9
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 187,
"name": "Default",
"employee_ids": [],
"no_of_employees": 0,
"hours_per_week": "44.0",
"company_default": false,
"hours_per_day": 8.0,
"timetracker_overtime_hours_limit_enabled": true,
"timetracker_salary_threshold_for_overtime_enabled": true
}
List Working Hours
Request
Endpoint
GET https://api.talenox.com/api/v2/working_hours
GET https://api.talenox.com/api/v2/working_hours
Accept: application/json
Content-Type: application/json
Authorization: Bearer bac2c00544e4052485e112c6a4f3eedd09fc1d62
Parameters
None known.
Response
content-type: application/json; charset=utf-8
200 OK
[
{
"id": 182,
"name": "Test Working Hour",
"employee_ids": [],
"no_of_employees": 0,
"hours_per_week": "44.0",
"company_default": true,
"hours_per_day": 8.0,
"timetracker_overtime_hours_limit_enabled": true,
"timetracker_salary_threshold_for_overtime_enabled": true
}
]
Update Working Hour
Request
Endpoint
PUT https://api.talenox.com/api/v2/working_hours/:id
PUT https://api.talenox.com/api/v2/working_hours/189
Accept: application/json
Content-Type: application/json
Authorization: Bearer 42d0d6ac3e074c3d7a7f8d5a141aaf86eef3f9dd
Parameters
{
"working_hour": {
"name": "Change name",
"hours_per_week": 40.0
}
}
None known.
Response
content-type: application/json; charset=utf-8
200 OK
{
"id": 189,
"name": "Change name",
"employee_ids": [],
"no_of_employees": 0,
"hours_per_week": "40.0",
"company_default": false,
"hours_per_day": 8.0,
"timetracker_overtime_hours_limit_enabled": true,
"timetracker_salary_threshold_for_overtime_enabled": true
}
Leave Application Flow (BETA)
To apply leave using the create leave application api, developers should have the following information ready to be submitted as payload. The create leave application endpoint checks and block if payload has issues, such as applied leave dates are overlapping with existing applications. However, the developer will still need to do necessary checks before they call the endpoint for a smoother api experience.
This guide suggests a flow developers can follow to call Talenox's APIs to get these information ready:
- Leave Employee ID
- Leave Approver Employee ID
- Leave Category ("type" for Leave Type and "oil" for Off in lieu)
- Leave Catgory ID (Leave Type or Off in lieu ID)
1. Get Leave Employee Information
Follow instructions on List All Employees
2. Get Leave Approver Information
With the employee id in step 1, query leave approvers
3. Get available leave types and off in lieus for leave employee
retrieve leave types and off in lieus for the employee with the following end points. - List available leave types for an employee - List off line lieus for an employee
4. Check that leave employee's leave type has leave balance and entitlement for the leave employee's leave type
Check that the selected leave type has sufficient leave balance and has a valid entitlement period in Talenox. If the leave type is off in lieu use the endpoints in Off in lieus section.
Leave types
- Get leave balance for a leave type of an employee
- Get leave entitlement period for a leave type of an employee
Off in lieus
- Get off in lieu balance for all off in lieus of an employee
- Get leave entitlement period for an off in lieu of an employee
5. Get leave applications for the leave employee to check if dates applied are overlapping
Supply the leave employee's id to the endpoint in Get leave applications for an employee
6. Apply leave with create leave application
Once you completed the previous steps, you can refer to Create leave application to apply leave with Talenox API.
Note that the category field should be "oil" for off in lieus and "type" for leave type.
Optional - Creating Leave Application with self-supplied leave durations and working days
// A sample payload for a single day leave application:
{
"employee_id": 272,
"category_id": 11,
"category": "type",
"start_date": "2023-03-09",
"end_date": "2023-03-09",
"remarks": "test",
"working_days": [
{
"date": "2023-03-09",
"type": "full_day" // or "first_half" or "second_half" or "holiday" or "not_working"
}
],
"applied_durations": [
{
"date": "2023-03-09",
"type": "full_day" // or "first_half" or "second_half
}
]
}
// A sample payload for multiple day leave application
{
"employee_id": 272,
"category_id": 11,
"category": "type",
"start_date": "2023-03-09",
"end_date": "2023-03-11",
"remarks": "test",
"working_days": [
{
"date": "2023-03-09",
"type": "full_day" // or "first_half" or "second_half" or "holiday" or "not_working"
},
{
"date": "2023-03-10",
"type": "full_day" // or "first_half" or "second_half" or "holiday" or "not_working"
},
{
"date": "2023-03-11",
"type": "full_day" // or "first_half" or "second_half" or "holiday" or "not_working"
}
],
"applied_durations": [
{
"date": "2023-03-09",
"type": "full_day" // or "second_half"
},
{
"date": "2023-03-11",
"type": "full_day" // or "first_half"
}
]
}
Developers can also supply their own applied leave durations and working days.
Notes on creating leave applications with self-supplied working days
Working_days should contain the number of instances as defined by start_date and end_date. Each working day instance "type" must be one of the values "full_day", "first_half", "second_half" , "holiday" or "not_working"
- e.g. if the start_date is 2023-03-09, and end_date is 2023-03-10, working_days should contain 2 instances to reflect this.
- Providing working days is optional, and depends on how your app is integrated with Talenox. If no working days is provided, it is assumed Talenox will be the source of truth for working days, and leave applications will be created based on working days defined by Talenox.
Notes on creating leave applications with self-supplied applied durations
For applied durations, type must be one of the values 'full_day', 'first_half' or 'second_half'.
- For single day leave applications, type must be one of the values 'full_day', 'first_half' or 'second_half'.
- For multiple day leave applications, developers only need to provide the start and end applied durations as Talenox treats this as a continuous block of days and generate the days in between. Specifically,
- the first day of your leave application, applied duration type can only be 'full_day' or 'second_half'
- the last day of your leave application, type can only be 'full_day' or 'first_half'
7. Approve leave application
After the leave application is created, track the leave application id returned. Use the leave application id as the input for the approve leave endpoint, and approve the leave as the leave approver. This means you submit with the oauth authorization, or use the leave approver api token as the Bearer token to process this request. - Approve leave as leave approver
Leave Attachments Flow (BETA)
Upload Attachment
Follow these steps to upload leave attachments:
- Create leave application by following the leave application flow
- Once leave application is created, upload attachment for your new leave application
Delete Attachment
Follow these steps to delete leave attachments:
- View attachment details of a leave application to get the attachment ids
- Supply attachment ids and delete leave attachment