NAV

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:

  1. Log into Talenox https://app.talenox.com

  2. At the top right nav > API Settings, there is a link to the OAuth 2.0 developer page

  3. Create the OAuth 2.0 application by providing Application Name, Redirect URI, Origin URI (Optional) and Scopes

Usage

  1. Direct the user to
    https://app.talenox.com/oauth/authorize?client_id=<client ID>&redirect_uri=<redirect URI>&scope=<scope>&response_type=code

  2. After the user login and authorize the access, it will be redirect back to the Redirect URI with the code

  3. 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>

  4. 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 c827a72f41fad49ae738e25b753bcaebe3ff1e97

Parameters

{
  "branch": {
    "name": "Sample Branch",
    "address": "5273 Sanford Glen",
    "postcode": "52574-3518",
    "head_id": 856,
    "employee_ids": [
      856,
      857,
      858,
      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": [
    856,
    857,
    858,
    859
  ],
  "no_of_employees": 4,
  "address": "5273 Sanford Glen",
  "postcode": "52574-3518",
  "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 4b44c7e78f167360decc4d81417175dd70615983

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 d05b85e3a9bdacdfee8be686d6853205030752ab

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
[
  {
    "id": 921,
    "name": "480 Randy Mountain",
    "employee_ids": [
      854,
      855
    ],
    "no_of_employees": 2,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 919,
    "name": "Stormymouth",
    "employee_ids": [],
    "no_of_employees": 0,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 920,
    "name": "Loreenhaven",
    "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": "Kimberberg",
    "employee_ids": [
      843
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 909,
    "name": "Ziemanntown",
    "employee_ids": [
      844
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 910,
    "name": "Houstonview",
    "employee_ids": [
      845
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 911,
    "name": "Sherryside",
    "employee_ids": [
      846
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 912,
    "name": "Sipesville",
    "employee_ids": [
      847
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 913,
    "name": "Marvinmouth",
    "employee_ids": [
      848
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 914,
    "name": "South Barabara",
    "employee_ids": [
      849
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 915,
    "name": "Parkerchester",
    "employee_ids": [
      850
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 916,
    "name": "Collierfort",
    "employee_ids": [
      851
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 917,
    "name": "Hamillhaven",
    "employee_ids": [
      852
    ],
    "no_of_employees": 1,
    "address": null,
    "postcode": null,
    "head_id": null
  },
  {
    "id": 918,
    "name": "North Vivienne",
    "employee_ids": [
      853
    ],
    "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 2609508b08f2eecea5357f9157e59fdfc844bbf7

Parameters

Name Description
id required Branch ID

Response

content-type: application/json; charset=utf-8
200 OK
{
  "id": 952,
  "name": "22579 Waelchi Drive",
  "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 5505b6ada38ec9de489d90ea624d3c022ee0804e

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 bdfc7742827d2fa195982fa1a50ef2417184b962

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 e65d75c88d3e50316887c63bc490820095862725

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 de82f3f24ca6633e1b9006298afb617c366ae00c

Parameters

{
  "cost_centre": {
    "name": "Business",
    "employee_ids": [
      "7ziw6p6xsl",
      "bnok3j4vre",
      "wu5y7ph1lp",
      "enpscev6if"
    ],
    "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": [
    985,
    986,
    987,
    988
  ],
  "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 5ca736aa13237549e55b3a6c7be493d34ba63373

Parameters

Name Description
id required Cost Centre ID

Response

content-type: application/json; charset=utf-8
200 OK
{
  "message": "Successfully deleted cost centre Lebsack Drives"
}

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 39850b4aff5398a2ab8e4ff376c27fa953b143cb

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
[
  {
    "id": 1,
    "name": "Sina River",
    "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 ab982cf13691f65c493184c81f397e239db46992

Parameters

{
  "cost_centre": {
    "name": "Engineer",
    "employee_ids": [
      "25jr5remk1",
      "nh7gb91qz5",
      "0cq90hwaa3",
      "uyrrvmplnp"
    ],
    "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 49f8e95e46ba1a0ef9a92c1755405b7c1cbb6241

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": "b15069f7-ce69-41a4-b553-39c9644beaaf",
  "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 006bc44f7616a79fa42097f9771cffe1f64b5353

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 1d84f331b1fc952d14473572b28fa03638f77cfb

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": "12f7f719-ae1f-4e68-b348-d4c2c050d067",
  "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 a3f1922d520338a44432436ad52cb8d01c304ef0

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
[
  {
    "id": 35668,
    "item_type": "Salary/Wages",
    "name": "Basic Pay",
    "category": "Recurring",
    "tax": true,
    "gross_net_settings": "gross",
    "proration_enabled": true,
    "slug": "69a53817-61f6-46ac-a37a-70bf1ee50d47",
    "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": "8de96251-c556-4b92-9f51-310c95adf6ec",
    "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": "1d83c024-91e7-4d96-972d-4a8b3e820c08",
    "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": "036000f4-173d-44ef-8058-3da56a7eb593",
    "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": "1361c249-7523-4539-b358-36357e7da46b",
    "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": "26a964c9-ae98-4508-8335-781832ba95b6",
    "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": "616a43fb-0521-4a81-8232-c1685384447f",
    "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": "f22841dd-146a-4aa8-aa59-14f2f72a6099",
    "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": "615cf20c-2ebf-4974-9e35-17c88a2dedc1",
    "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": "97de1f34-ea1f-4bcf-8852-5b046ffe97b4",
    "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": "5e513fdb-b0f0-4350-b5ca-2c109643f6c7",
    "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": "8dfd5e6f-5a3a-479f-817a-8109a4737638",
    "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": "3acbd997-c47e-442b-a62d-a384f48885aa",
    "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": "5305c0f4-9440-4235-b890-c82763b18099",
    "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": "047fdc94-9d2b-4b75-8d2d-d9e99d7b730e",
    "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": "e39587a1-e36c-4eae-91b6-b3118ee15ee1",
    "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": "144cf763-98e3-4282-91f8-49c9a9a337f5",
    "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": "9e06a7d3-c792-442e-95c0-cf6f16caa383",
    "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": "6baaa7d4-6ba2-4b49-b33d-df90db26e3f7",
    "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": "75acb9f8-d90e-4f03-a733-95b9f6b3fe6e",
    "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": "7387bbf5-aa6d-43ff-9d2b-ebfe00981b0d",
    "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": "af9f1fa1-530e-4bdf-8e99-57ab88b171c9",
    "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": "548f1ccd-a566-409a-a09c-d4b5e3df69a5",
    "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": "3dd6a0e3-ae47-4ba4-955c-f18ad56c20cd",
    "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": "4e63d4db-b5df-421c-b164-f02a9d7d36d8",
    "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": "514e6acb-7360-4b55-ae06-a6604d93e9d9",
    "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": "85e3b829-cb8f-4c90-97c9-9ab467c3bf53",
    "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": "a29aec1a-37e4-4b4e-ac11-5b0929983f00",
    "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": "1a155d5f-91d3-4f1d-aeec-b245132623f1",
    "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": "22c20197-9200-4694-aa87-732fed8abb8a",
    "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": "83b6ea92-96f8-45db-8c1f-a08018259a2b",
    "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": "8c1c61c4-02bc-4a4e-9117-a1c4313cc7c9",
    "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": 35700,
    "item_type": "IR21 Tax Withholding",
    "name": "IR21 Tax Withholding",
    "category": "Adhoc",
    "tax": false,
    "gross_net_settings": "net",
    "proration_enabled": false,
    "slug": "fcc05f28-1e3c-4503-ae96-4805752b90b4",
    "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": 35701,
    "item_type": "Meal Allowance",
    "name": "Meal Allowance",
    "category": "Adhoc",
    "tax": true,
    "gross_net_settings": "gross",
    "proration_enabled": false,
    "slug": "5aa42248-22ce-4b37-a3ad-58359ebf375a",
    "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": "93fa93b6-4ea5-40d5-a53f-17ffdd34549f",
    "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": "add951f6-e506-4f12-b41b-c3e907a645a2",
    "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": "ec1746ba-562f-473d-8c87-3b56b6a21b1c",
    "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": "2f8cd119-794e-4634-9d44-4cbf679eed42",
    "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": "82120aae-cba3-4bae-957b-e279e936eb11",
    "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": "66773d1c-bd47-44ef-a739-3cb3382e48a2",
    "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": "b95282c5-5c0a-4a8a-9cc0-2f87c382ab2f",
    "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": "0d53dd22-905d-467d-b28c-b2335b07d6c6",
    "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": "fa4d335c-bffe-4397-9006-e09de0d8c196",
    "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": "d117fb80-4e25-485d-8a61-6eefc62ccbc1",
    "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": "8178226d-810e-455f-9197-960efa51e22a",
    "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": "dccde35c-a25a-4714-9e85-1371a1c8f94d",
    "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": "9fefeab5-f036-4924-8143-e4529f0718a0",
    "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": "e4b531ca-129f-4042-9b82-1166d2d2bbb8",
    "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": "dce37de0-075d-48a6-8f17-f8e6805dbbf5",
    "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": "da497d07-efd4-4f44-88d6-f4a51bd65ef1",
    "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": "4cee396a-dcf9-4a74-bd3d-f686c854a867",
    "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": "285d419c-9b7e-481e-ab03-63e3b7ca6391",
    "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": "f5daef1d-3035-4958-9c19-ba6de37e766f",
    "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": "f658eab8-5d53-452c-9fe5-081c96039b2c",
    "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": "facd024f-95b5-44f9-a2d3-b29d355f7a2f",
    "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": "6ae83367-ca40-4338-98eb-4680eedafd74",
    "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": "70c7c0a2-cc2d-4017-948c-dbe0f6342981",
    "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": "2dec1c9d-4b74-4da3-ac62-619bbb9c80ec",
    "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": "6a4e154e-46dc-4b7d-9d4f-e0e064269559",
    "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": "530ad210-840f-4c83-90d3-a7579d2376bb",
    "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": "fe4cf3aa-34b2-4566-8ed3-94d86a1060c7",
    "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": "e939d54e-eeb1-4230-b467-300d57963383",
    "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": "26d7889a-b919-4a69-866f-256a8b2d044a",
    "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": "2e17e12f-1e61-45c4-b534-a42dcdf017bf",
    "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": "70073fa3-867d-4d04-9e15-1e4653cf5729",
    "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": "890a84f3-ed9a-4307-b575-96f9a5e400cc",
    "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": "cd013a84-962f-4629-ac12-54d211c733df",
    "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": "470a7d19-629b-4929-880d-11cd73bf9f79",
    "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": "6ebce291-04ad-4ce7-a43e-c69f725b8931",
    "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": "fdfca8f6-72bd-48e9-bfbc-17dbb0b53a74",
    "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": "56aa944e-c433-4c55-b323-97f65e1fb8c7",
    "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": "e14cd853-74cc-4d45-818f-2da569affe43",
    "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": "137d977f-6592-418a-9a64-6201d5531fe3",
    "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": "36b64c46-bddc-45bd-9b1e-5ce9a6ff2dc2",
    "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": "d1eba008-a9a8-44e7-a76c-27adcc2bee88",
    "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": "e7d035db-c3d5-4994-baef-490d72d572a9",
    "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": "00bc531a-0363-41d6-ac1d-57ff6dbc6459",
    "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": "6b2de054-2e43-4a0b-872f-7bf0fe49c2f6",
    "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": "b620330f-4b36-4dbe-9052-098a5baa4094",
    "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": "b5044ca0-3961-49a3-8940-ad1f0e53f5ac",
    "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": "687878df-acbd-443f-9d77-291906657fcf",
    "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": "db379ac8-ea01-4caf-a041-66f200a7c8e3",
    "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": "c9f3af16-5302-4c6a-8051-bae5ca67ada8",
    "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": "f616d9f8-27ae-46f0-b10b-12ff7e28171d",
    "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 79b22b31235c740780603ed76e0f4801ea2af0e9

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": "9cd002ea-9141-48fe-bac5-b6b99cc26294",
  "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 8bbadb2ec45079a8cbb901790181f4b7fcf0426a

Parameters

{
  "role": {
    "name": "Manager",
    "employee_ids": [
      1718,
      1719,
      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": [
    1718,
    1719,
    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 85b5bd58c7e736c62935babe06739dc26832795a

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 1c4b4cf7c7a22ba229f4ac466284bfce7015265b

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
[
  {
    "id": 1688,
    "name": "fisherman",
    "employee_ids": [
      1705
    ],
    "no_of_employees": 1
  },
  {
    "id": 1689,
    "name": "electrician",
    "employee_ids": [
      1706
    ],
    "no_of_employees": 1
  },
  {
    "id": 1690,
    "name": "astronomer",
    "employee_ids": [
      1707
    ],
    "no_of_employees": 1
  },
  {
    "id": 1691,
    "name": "physicist",
    "employee_ids": [
      1708
    ],
    "no_of_employees": 1
  },
  {
    "id": 1692,
    "name": "dietician",
    "employee_ids": [
      1709
    ],
    "no_of_employees": 1
  },
  {
    "id": 1693,
    "name": "engineer",
    "employee_ids": [
      1710
    ],
    "no_of_employees": 1
  },
  {
    "id": 1694,
    "name": "actress",
    "employee_ids": [
      1711
    ],
    "no_of_employees": 1
  },
  {
    "id": 1695,
    "name": "philosopher",
    "employee_ids": [
      1712
    ],
    "no_of_employees": 1
  },
  {
    "id": 1696,
    "name": "librarian",
    "employee_ids": [
      1713
    ],
    "no_of_employees": 1
  },
  {
    "id": 1697,
    "name": "gardener",
    "employee_ids": [
      1714
    ],
    "no_of_employees": 1
  },
  {
    "id": 1698,
    "name": "mechanic",
    "employee_ids": [
      1715
    ],
    "no_of_employees": 1
  },
  {
    "id": 1699,
    "name": "thvkngpwezaaeclyhdlbzsxazfekdwke",
    "employee_ids": [],
    "no_of_employees": 0
  },
  {
    "id": 1700,
    "name": "qfjvkujjuwjfzebvfqvasgqlgoncqgqe",
    "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 b755394a7bdcd4187c3ae43ff24aeeea9af3fe8f

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 10f2d294a46e2b92419e798f5a34d84c92bac8e6

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 a95754e04de8677a82fb1b3545dc18e1f5c6b34a

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-323d3f50",
  "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
}

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 5636e57a31d2c50743f063c8c4d6db1d039b3aa7

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-4c15c80e",
  "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"
  }
}

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 d799c85782e92d9c4fa0ec12c851b806b91d9596

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,
      "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
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-1d92bd5b",
  "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,
    "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,
    "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
}

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 c8ba7b7c972db9805f2d6a048b84b4ef18c062ce

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-aed0555d",
  "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": "Kilback Court",
      "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": "Ludivina Lock",
      "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": "Kilback Court",
    "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
  },
  "additional_my_employee_info": null,
  "additional_id_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 02468f132825e8dce542fe9b81ef66a5da281242

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 19a60f6233d1e9583efcbf4444a3be91e0cb118f

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "id": 1054,
  "employee_id": "00001",
  "first_name": "Sharee",
  "middle_name": null,
  "last_name": "Kuphal",
  "identification_full_name": "Kuphal Sharee",
  "email": "ty@talenox.com",
  "payment_method": "Bank Transfer",
  "hired_date": "2025-03-15",
  "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": "1993-11-14",
  "slug": "sharee-kuphal-eec96aae",
  "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": "15/03/2025",
    "end_date": null,
    "remarks": null,
    "amount": "5604.0",
    "rate_of_pay": "Monthly",
    "currency": "SGD"
  },
  "jobs": [
    {
      "id": 57,
      "title": "Title1",
      "department": null,
      "start_date": "15/03/2025",
      "end_date": null,
      "remarks": null,
      "amount": "5604.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": "Kuphal Sharee",
    "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": null,
    "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": "2025-11-14",
    "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
  },
  "additional_my_employee_info": null,
  "additional_id_employee_info": {
    "tax_processing_date": "2025-03-15",
    "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
  }
}

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 11eed527a7f21e41beb656ffe880b07fc3c1fe1a

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
[
  {
    "id": 1048,
    "employee_id": "00001",
    "first_name": "Emile",
    "middle_name": null,
    "last_name": "Kris",
    "identification_full_name": "Kris Emile",
    "email": "desirae@talenox.com",
    "payment_method": "Bank Transfer",
    "hired_date": "2024-03-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": "1986-11-14",
    "slug": "emile-kris-5e91042d",
    "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": "26/03/2024",
      "end_date": null,
      "remarks": null,
      "amount": "2179.0",
      "rate_of_pay": "Monthly",
      "currency": "SGD"
    },
    "jobs": [
      {
        "id": 51,
        "title": "Title1",
        "department": null,
        "start_date": "26/03/2024",
        "end_date": null,
        "remarks": null,
        "amount": "2179.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": "Kris Emile",
      "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": null,
      "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": "2025-11-14",
      "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
    },
    "additional_my_employee_info": null,
    "additional_id_employee_info": {
      "tax_processing_date": "2024-03-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
    }
  },
  {
    "id": 1049,
    "employee_id": "00002",
    "first_name": "Elden",
    "middle_name": null,
    "last_name": "Champlin",
    "identification_full_name": "Champlin Elden",
    "email": "jackqueline@talenox.com",
    "payment_method": "Bank Transfer",
    "hired_date": "2024-08-12",
    "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": "1984-11-14",
    "slug": "elden-champlin-58f13c28",
    "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": "12/08/2024",
      "end_date": null,
      "remarks": null,
      "amount": "3421.0",
      "rate_of_pay": "Monthly",
      "currency": "SGD"
    },
    "jobs": [
      {
        "id": 52,
        "title": "Title1",
        "department": null,
        "start_date": "12/08/2024",
        "end_date": null,
        "remarks": null,
        "amount": "3421.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": "Champlin Elden",
      "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": null,
      "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": "2025-11-14",
      "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
    },
    "additional_my_employee_info": null,
    "additional_id_employee_info": {
      "tax_processing_date": "2024-08-12",
      "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
    }
  },
  {
    "id": 1050,
    "employee_id": "00003",
    "first_name": "Delpha",
    "middle_name": null,
    "last_name": "Yost",
    "identification_full_name": "Yost Delpha",
    "email": "frieda@talenox.com",
    "payment_method": "Bank Transfer",
    "hired_date": "2025-04-19",
    "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-11-14",
    "slug": "delpha-yost-1d0303be",
    "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": "19/04/2025",
      "end_date": null,
      "remarks": null,
      "amount": "2801.0",
      "rate_of_pay": "Monthly",
      "currency": "SGD"
    },
    "jobs": [
      {
        "id": 53,
        "title": "Title1",
        "department": null,
        "start_date": "19/04/2025",
        "end_date": null,
        "remarks": null,
        "amount": "2801.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": "Yost Delpha",
      "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": null,
      "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": "2025-11-14",
      "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
    },
    "additional_my_employee_info": null,
    "additional_id_employee_info": {
      "tax_processing_date": "2025-04-19",
      "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
    }
  }
]

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 13d35797604f1efaef66d67eef5d0989604e24ea

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": "Franecki Maurice",
  "email": "marget@talenox.com",
  "payment_method": "Bank Transfer",
  "hired_date": "2024-07-28",
  "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": "1996-11-14",
  "slug": "mary-lan-19d352c0",
  "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": "28/07/2024",
    "end_date": null,
    "remarks": null,
    "amount": "7408.0",
    "rate_of_pay": "Monthly",
    "currency": "SGD"
  },
  "jobs": [
    {
      "id": 60,
      "title": "Title1",
      "department": null,
      "start_date": "28/07/2024",
      "end_date": null,
      "remarks": null,
      "amount": "7408.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": "Franecki Maurice",
    "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": null,
    "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": "2025-11-14",
    "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
  },
  "additional_my_employee_info": null,
  "additional_id_employee_info": {
    "tax_processing_date": "2024-07-28",
    "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
  }
}

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 21a4d8ab687f4e89cc275f5fc2854818a9c5144a

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": "Chaya",
  "middle_name": null,
  "last_name": "Goyette",
  "identification_full_name": "John Michael Smith",
  "email": "nicholas_kirlin@talenox.com",
  "payment_method": "Bank Transfer",
  "hired_date": "2024-05-13",
  "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": "1994-11-14",
  "slug": "chaya-goyette-b0abfd2f",
  "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": "13/05/2024",
    "end_date": null,
    "remarks": null,
    "amount": "8191.0",
    "rate_of_pay": "Monthly",
    "currency": "SGD"
  },
  "jobs": [
    {
      "id": 61,
      "title": "Title1",
      "department": null,
      "start_date": "13/05/2024",
      "end_date": null,
      "remarks": null,
      "amount": "8191.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": "Goyette Chaya",
    "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": null,
    "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": "2025-11-14",
    "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
  },
  "additional_my_employee_info": null,
  "additional_id_employee_info": {
    "tax_processing_date": "2024-05-13",
    "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
  }
}

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 d17b244d27b57788d8a600e1f10412924bfc7e2c

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": "2025-11-14T02:34:12.429Z",
  "updated_at": "2025-11-14T02:34:12.429Z"
}

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 da635b2be2ace2a2bd4f075f1ebe8d87422d6dc9

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "message": "holiday policy deleted successfully",
  "timestamp": "2025-11-14T10:34:40.236+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 bafa9210a2920e9cd0c41844aed2e2669fe5ed77

Parameters

{
  "holiday_date": "2025-11-14"
}
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": "2025-11-14",
  "timestamp": "2025-11-14T10:34:59.018+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=2025&amp;show_inactive=false
Accept: application/json
Content-Type: application/json
Authorization: Bearer fe6d40839039326eadadaee192597c5a9087b293

Parameters

year: 2025
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": "2025-11-14",
    "name": "Company Custom Holiday",
    "duration": "all_day",
    "holiday_type": "public_holiday",
    "is_active": true,
    "holiday_source": "user"
  },
  {
    "holiday_date": "2025-11-15",
    "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=2025-01-01&amp;end_at=2025-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer c8863d6d8b94c86622c0408bb2d03aaeaea36fdb

Parameters

start_at: 2025-01-01
end_at: 2025-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": "2025-11-14T02:34:18.156Z",
  "updated_at": "2025-11-14T02:34:18.156Z",
  "calendar_events": [
    {
      "holiday_date": "2025-11-14",
      "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=2025&amp;show_inactive=true
Accept: application/json
Content-Type: application/json
Authorization: Bearer ca5e0d429a8ac3e7f8dcbd3303a163e8c9fd67ff

Parameters

year: 2025
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": "2025-11-14",
    "name": "Company Custom Holiday",
    "duration": "all_day",
    "holiday_type": "public_holiday",
    "is_active": true,
    "holiday_source": "user"
  },
  {
    "holiday_date": "2025-11-15",
    "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 82aa7d976330a7a881de0874554690a715a95b0a

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": 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": 19,
    "name": "Japan",
    "country_code": "JP"
  },
  {
    "id": 25,
    "name": "Macau",
    "country_code": "MO"
  },
  {
    "id": 4,
    "name": "Malaysia",
    "country_code": "MY"
  },
  {
    "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": 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": 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&amp;start_at=2025-01-01&amp;end_at=2025-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer 843e0537226271ea068cbe1e65937983ecf0bc79

Parameters

country_code: SG
start_at: 2025-01-01
end_at: 2025-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": "2025-11-14",
    "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&amp;start_at=2025-01-01&amp;end_at=2025-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer ecdc319bd19fd7c1ec55f8c0f6ffd7486b75d8cc

Parameters

country_id: 2
start_at: 2025-01-01
end_at: 2025-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": "2025-11-14",
    "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&amp;state_id=14&amp;start_at=2025-01-01&amp;end_at=2025-12-31
Accept: application/json
Content-Type: application/json
Authorization: Bearer 88c627d8b835f76796ffb5474494c2c57fdf44c9

Parameters

country_id: 4
state_id: 14
start_at: 2025-01-01
end_at: 2025-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": "2025-11-14",
    "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 81544c44e7e71c99067b5b68ea120efe3b34ef15

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 90ca766fa936f3ea4b12f908084c39e338244dd8

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": "2025-11-14T02:34:00.754Z",
    "updated_at": "2025-11-14T02:34:02.859Z"
  },
  {
    "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": "2025-11-14T02:34:02.809Z",
    "updated_at": "2025-11-14T02:34:02.809Z"
  }
]

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 6d8aad24b0999d64b4aab99f4a38d2d468bab0cb

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": "2025-11-14T02:34:07.081Z",
    "updated_at": "2025-11-14T02:34:09.339Z"
  },
  {
    "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": "2025-11-14T02:34:09.279Z",
    "updated_at": "2025-11-14T02:34:09.279Z"
  }
]

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&amp;limit=20
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4b74f34a72978412d98764d299bd901eb62a7b09

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": "2025-11-14T02:34:05.968Z",
    "updated_at": "2025-11-14T02:34:05.968Z"
  }
]

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 7dea88f78f8eb32ba5d0a3fd75d633bee8c5cf1e

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": "2025-11-14T02:34:27.415Z",
  "updated_at": "2025-11-14T02:34:27.509Z"
}

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 db02237c232aea83bf41e3361a077ca7adf532ef

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": "2025-11-14T10:34:49.780+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 fc68ae075f0fbdf6be59b276519bce5d5f55859f

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 e90bebc7ca7e08c182d71c637153cb06c00e2323

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 830ba472b53ff45d9fd41c0f3f8cc7d8d71766ea

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "id": 88,
  "title": "Title1",
  "department": null,
  "start_date": "14/11/2025",
  "end_date": null,
  "remarks": null,
  "amount": "6694.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 5a7da1a83ecf0fa70114812b16be0cc52d956b71

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 9c1fb4dfde378eadc281d9ac380e4f23bde17591

Parameters

?employee_ids: [&quot;1624&quot;]
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": "2025-11-14",
    "start_date_which_half": "AM",
    "end_at": "2025-11-14",
    "end_date_which_half": "PM",
    "is_single_day": true,
    "status": "pending",
    "derived_duration_listing": [
      {
        "working_day_type": "Working Full Day",
        "date": "2025-11-14",
        "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": "2025-11-14",
    "start_date_which_half": "AM",
    "end_at": "2025-11-14",
    "end_date_which_half": "PM",
    "is_single_day": true,
    "status": "pending",
    "derived_duration_listing": [
      {
        "working_day_type": "Working Full Day",
        "date": "2025-11-14",
        "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": "2025-11-14",
    "start_date_which_half": "AM",
    "end_at": "2025-11-14",
    "end_date_which_half": "PM",
    "is_single_day": true,
    "status": "pending",
    "derived_duration_listing": [
      {
        "working_day_type": "Working Full Day",
        "date": "2025-11-14",
        "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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "id": 21,
  "timestamp": "2025-11-14T10:36:55.255+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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

Parameters

{
  "employee_id": 1531,
  "category_id": 81,
  "category": "type",
  "start_date": "2025-11-03",
  "end_date": "2025-11-03",
  "remarks": "test",
  "working_days": [
    {
      "date": "2025-11-03",
      "type": "full_day"
    }
  ],
  "applied_durations": [
    {
      "date": "2025-11-03",
      "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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

Parameters

Name Description
id required Leave Application ID

Response

content-type: application/json; charset=utf-8
200 OK
{
  "id": 15,
  "status": "success",
  "timestamp": "2025-11-14T10:36:46.626+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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

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": "2025-11-14T10:37:18.509+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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

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": "2025-11-14T02:36:44.140Z",
  "employee_id": 1531,
  "end_date": "2025-11-14",
  "end_time": "PM",
  "id": 14,
  "non_working_amount": "0.0",
  "remarks": null,
  "start_date": "2025-11-14",
  "start_time": "AM",
  "status": "pending",
  "updated_at": "2025-11-14T02:36:44.140Z"
}

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=2025-11-14&amp;overlap_to=2025-11-15
Accept: application/json
Content-Type: application/json
Authorization: Bearer OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

Parameters

overlap_from: 2025-11-14
overlap_to: 2025-11-15
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": "2025-11-14T02:36:28.547Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 1,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:28.547Z"
  },
  {
    "amount": "1.0",
    "approvers": null,
    "attachments": null,
    "category_class": "type",
    "category_id": 92,
    "created_at": "2025-11-14T02:36:29.020Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 2,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:29.020Z"
  },
  {
    "amount": "1.0",
    "approvers": null,
    "attachments": null,
    "category_class": "type",
    "category_id": 93,
    "created_at": "2025-11-14T02:36:29.406Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 3,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:29.406Z"
  },
  {
    "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": "2025-11-14T02:36:29.819Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 4,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:29.819Z"
  }
]

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=2025-11-14&amp;overlap_to=2025-11-15&amp;created_start=2025-11-13&amp;created_end=2025-11-15&amp;leave_application_status=pending
Accept: application/json
Content-Type: application/json
Authorization: Bearer OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

Parameters

overlap_from: 2025-11-14
overlap_to: 2025-11-15
created_start: 2025-11-13
created_end: 2025-11-15
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": "2025-11-14T02:36:31.442Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 5,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:31.442Z"
  },
  {
    "amount": "1.0",
    "approvers": null,
    "attachments": null,
    "category_class": "type",
    "category_id": 96,
    "created_at": "2025-11-14T02:36:31.865Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 6,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:31.865Z"
  },
  {
    "amount": "1.0",
    "approvers": null,
    "attachments": null,
    "category_class": "type",
    "category_id": 97,
    "created_at": "2025-11-14T02:36:32.258Z",
    "employee_id": 1531,
    "end_date": "2025-11-14",
    "end_time": "PM",
    "id": 7,
    "non_working_amount": "0.0",
    "remarks": null,
    "start_date": "2025-11-14",
    "start_time": "AM",
    "status": "pending",
    "updated_at": "2025-11-14T02:36:32.258Z"
  }
]

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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "id": 28,
  "timestamp": "2025-11-14T10:37:12.163+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 OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

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&amp;leave_application_ids=11
Accept: application/json
Content-Type: application/json
Authorization: Bearer OftkdJzAMoCznybN6FyuW-uq5NDDzSHtUnosR3ObVX0

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": "2025-11-14T10:36:42.797+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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

{
  "approvers": [
    {
      "approver_ids": [
        1554
      ],
      "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": [
        1561
      ]
    },
    {
      "level": 2,
      "approvers": [
        1554
      ]
    }
  ],
  "company_default": true,
  "id": 127,
  "levels": 2,
  "name": "Structure 7nkscjp17i",
  "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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

{
  "approvers": [
    {
      "approver_ids": [
        1554
      ],
      "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": [
        1561,
        1554
      ]
    }
  ],
  "company_default": true,
  "id": 121,
  "levels": 1,
  "name": "Structure pvg934rnxo",
  "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=1554,1561
Accept: application/json
Content-Type: application/json
Authorization: Bearer MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

employee_ids: 1554,1561
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": [
    1561,
    1554
  ]
}

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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

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": [
          1561
        ]
      }
    ],
    "company_default": true,
    "id": 99,
    "levels": 1,
    "name": "Structure wd3xcq8bnz",
    "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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

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
[
  1554,
  1555
]

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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

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": "2025-11-14T10:38:14.095+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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

{
  "approvers": [
    {
      "approver_ids": [
        1561
      ],
      "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": "2025-11-14T10:38:05.793+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=1554,1561
Accept: application/json
Content-Type: application/json
Authorization: Bearer MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

employee_ids: 1554,1561

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": 1561
    }
  ],
  "timestamp": "2025-11-14T10:37:57.433+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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

{
  "name": "new Test LAS ",
  "company_id": 333,
  "company_default": false,
  "employee_ids": [
    1554,
    1561
  ]
}
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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "message": "leave approval structure deleted successfully",
  "timestamp": "2025-11-14T10:37:44.646+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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

Name Description
id required Leave Approval Structure ID

Response

content-type: application/json; charset=utf-8
200 OK
{
  "approvers": [
    {
      "level": 1,
      "approvers": [
        1561
      ]
    }
  ],
  "company_default": true,
  "id": 102,
  "levels": 1,
  "name": "Structure wnwzddl3sp",
  "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 MZ6yESVi3p51c2XzjQHPYDJ5Ive5JWE4oTu6zQYhPjU

Parameters

{
  "name": "new Test LAS 2",
  "company_id": 333,
  "employee_ids": [
    1554,
    1561
  ]
}
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": [
        1561
      ]
    }
  ],
  "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=1593&amp;approver_id=38
Accept: application/json
Content-Type: application/json
Authorization: Bearer Yjegi15klUI2C5dThukzQMCvb-9kB1ivjWIv09rmuw0

Parameters

employee_id: 1593
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": [
      1597
    ],
    "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=1593
Accept: application/json
Content-Type: application/json
Authorization: Bearer Yjegi15klUI2C5dThukzQMCvb-9kB1ivjWIv09rmuw0

Parameters

employee_id: 1593
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": [
      1597
    ],
    "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=1613&amp;query_date=20251114&amp;limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer l3_bHM0KQI0X1mADrPZrqThGIAksb_IM0H1Na1LuRKU

Parameters

employee_id: 1613
query_date: 20251114
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": 1613,
  "query_date": "2025-11-14",
  "timestamp": "2025-11-14T10:38:41.575+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=1613&amp;query_date=20251114&amp;limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer l3_bHM0KQI0X1mADrPZrqThGIAksb_IM0H1Na1LuRKU

Parameters

employee_id: 1613
query_date: 20251114
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": 1613,
  "query_date": "2025-11-14",
  "timestamp": "2025-11-14T10:38:42.092+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 l3_bHM0KQI0X1mADrPZrqThGIAksb_IM0H1Na1LuRKU

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": "2025-12-14",
  "policy_start_date": "2025-11-14",
  "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=1613&amp;id=6&amp;query_date=20251114
Accept: application/json
Content-Type: application/json
Authorization: Bearer l3_bHM0KQI0X1mADrPZrqThGIAksb_IM0H1Na1LuRKU

Parameters

employee_id: 1613
id: 6
query_date: 20251114
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": 1613,
  "leave_type_id": 6,
  "query_date": "2025-11-14",
  "timestamp": "2025-11-14T10:38:42.712+08:00",
  "valid_periods": {
    "end_date": "2025-12-14",
    "errors": [],
    "start_date": "2025-11-14"
  }
}

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 l3_bHM0KQI0X1mADrPZrqThGIAksb_IM0H1Na1LuRKU

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": "2025-12-14",
    "policy_start_date": "2025-11-14",
    "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=1613&amp;id=2
Accept: application/json
Content-Type: application/json
Authorization: Bearer l3_bHM0KQI0X1mADrPZrqThGIAksb_IM0H1Na1LuRKU

Parameters

employee_id: 1613
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": "2025-12-14",
    "policy_start_date": "2025-11-14",
    "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=1607&amp;id=170&amp;query_date=20251114
Accept: application/json
Content-Type: application/json
Authorization: Bearer nAej4fmLiGC_I4g5X-XSq45yoFjjeEVQuL8ICPKh6eM

Parameters

employee_id: 1607
id: 170
query_date: 20251114
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": 1607,
  "query_date": "2025-11-14",
  "timestamp": "2025-11-14T10:38:34.351+08:00",
  "results": [
    {
      "balance": 7.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=1607&amp;query_date=20251114&amp;limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer nAej4fmLiGC_I4g5X-XSq45yoFjjeEVQuL8ICPKh6eM

Parameters

employee_id: 1607
query_date: 20251114
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": 1607,
  "query_date": "2025-11-14",
  "timestamp": "2025-11-14T10:38:33.837+08:00",
  "results": [
    {
      "balance": 7.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=1607&amp;id=170&amp;query_date=20251114
Accept: application/json
Content-Type: application/json
Authorization: Bearer nAej4fmLiGC_I4g5X-XSq45yoFjjeEVQuL8ICPKh6eM

Parameters

employee_id: 1607
id: 170
query_date: 20251114
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": 1607,
  "leave_type_id": 170,
  "query_date": "2025-11-14",
  "timestamp": "2025-11-14T10:38:34.809+08:00",
  "valid_periods": [
    {
      "end_date": "2024-12-31",
      "errors": [],
      "start_date": "2024-11-14"
    },
    {
      "end_date": "2025-12-31",
      "errors": [],
      "start_date": "2025-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 nAej4fmLiGC_I4g5X-XSq45yoFjjeEVQuL8ICPKh6eM

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 nAej4fmLiGC_I4g5X-XSq45yoFjjeEVQuL8ICPKh6eM

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=1607&amp;last_seen_id=171&amp;limit=5
Accept: application/json
Content-Type: application/json
Authorization: Bearer nAej4fmLiGC_I4g5X-XSq45yoFjjeEVQuL8ICPKh6eM

Parameters

employee_id: 1607
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 ed25d1ffce213fd0e3e31749adad3e158393e957

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": "Conroy-Sawayn"
    }
  },
  {
    "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": [
      "CA Indosuez",
      "DBS",
      "HSBC",
      "Standard Chartered",
      "RHB",
      "POSB",
      "POSB Plus",
      "OCBC",
      "Maybank - Singapore Branch",
      "UOB",
      "Citibank N.A Singapore Branch (CNAS)",
      "Crédit Agricole",
      "Commerzbank",
      "Allahabad",
      "ANZ",
      "HSBC Corporate",
      "Bank of China",
      "India - HDFC Bank",
      "ASB Bank Limited(New Zealand)",
      "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",
      "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.",
      "Maybank - Singapore Limited",
      "Bank of America",
      "CIMB"
    ]
  },
  {
    "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"
    ]
  },
  {
    "relationship": [
      "Wife",
      "Husband",
      "Daughter",
      "Son",
      "Mother",
      "Father",
      "Sister",
      "Brother",
      "Others"
    ]
  },
  {
    "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%"
    ]
  },
  {
    "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 082667e959ea7d34d9ac98f8cb218f153a4d9c1d

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 5b6759351e106784ea2a68835876d2d81d8bbd02

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 72f63f235c16492c09072842daa477074aca081e

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": "2025-11-14",
  "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 e0bb71aea317e0daa86ea1cf5eb724e04466c6ff

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": "2025-11-14",
  "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 54783bdc9308d417d6f4f72b94fc478210a2ebc6

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 8c16893b4601ff3fb10e2b1db4462fbef56dbe4c

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 4893b6b228a442504ec06a7ac2e7f019bfe9d611

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 8d0d1f5bb48d3ca40559f3d57553fe03d8284e92

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 3f5864ba3f8e31e14d707944573033aae0de3747

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 935a9f398a75d227d65ab3ef62bdae97ede06120

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 658a24b433a04793274508ff51feca5bbe42d594

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 101dfbe328d25c128e75745208de6ad90fd46e1c

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": null
}

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 bf9a0f5ec7a982e938791001b0fcbd8e3f41e298

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 335fc18d5b728148ecdbd4db61559e0f7dfa6231

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 7b66b176c7de1d9ecb7d5b5d8608c7d8019c710d

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": "Casey Hodkiewicz",
      "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,
          "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_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": "2025-11-14T02:39:36.075Z",
    "updated_at": "2025-11-14T02:39:36.114Z",
    "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"
  }
}

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 6795905e6d4d98b1ed3f6ae1a287d9c55d5706af

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": null
    }
  ]
}

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 50486246f329e719133cba6c2803c28f8d295455

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": "Chase Considine",
      "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,
          "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_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": "2025-11-14T02:39:41.589Z",
    "updated_at": "2025-11-14T02:39:41.652Z",
    "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"
  }
}

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 a7b102fe52c4c87ad85f0e5703b8c728008f6e6d

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 a3a420ac0f24237c2e8fee2d26789097e8ddccc6

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&amp;year=2018&amp;created_by_webhook=true
Accept: application/json
Content-Type: application/json
Authorization: Bearer 556cdb25896535718f5c4493cfd84f5f09faecbe

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 5119715cf9b53d61a43c5ad24a2164eac758125f

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 ba48d07b3c671401fda4ef0b92fa24c391f069b1

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 57d9e4761d79549d380ff091a24a7f4ef4d3c4cd

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 c826aeeb140948235c5950400c676f8f039c234e

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 2c2f667ea02c810416d200de4007766673b6973c

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 32b4cc5e321bef5a805c07a07af055a07f776b4c

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 ab0b7a7e2fadf0e316cf70232a55e1a3bf4ddf04

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 e8be43bbbb55ef5454855fb3f0939744f0556da4

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 a96eb94e9cfbea1fbf6e3faa68fa30ec94ead906

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 urYfRdTCC_XATUGL4xEwyZL91k4y5yRtaWdRIuLi5Ms

Parameters

None known.

Response

content-type: application/json; charset=utf-8
200 OK
{
  "company": {
    "id": 484
  },
  "employee": {
    "id": 1836,
    "employee_id": "hwskocxen6"
  }
}

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 91d735559829f4f9607c6547879a466dfd2774d2

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 13b1ee2ccdde57d750001c18b62aae472994961b

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 37205b8f6e8dfe1d2b1368f0e063e947c85c985d

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 30236ec9e3a8af4d4c16be3d908159caca0b70e9

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 b3a2a3f3f708cc20761e668706069bc9948a18a7

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 bc7f9720f4a386cffecc4d7c26ac2d2e00d83fea

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 b2bbbdeded6957b5d20c37468a4f3278912bf4ce

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 30af23235b4d82358889f8472c986e0e867b7fdd

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 6ff1ede44a04ccc50de3de4cbe8f8f6a08c9c59c

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 1586bc1c3687a4eec38466945beef6c7b5d205de

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:

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

Off in lieus

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"

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'.

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:

  1. Create leave application by following the leave application flow
  2. Once leave application is created, upload attachment for your new leave application

Delete Attachment

Follow these steps to delete leave attachments:

  1. View attachment details of a leave application to get the attachment ids
  2. Supply attachment ids and delete leave attachment