API reference / Payroll
Payroll API
144 endpoints. Scopes: Scalar360.payroll.READ, .CREATE, .UPDATE, .DELETE or .ALL. All calls need Authorization: Scalar360-oauthtoken <access_token> — see Authentication.
Payroll access
/api/v1/payroll/access
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/access" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/appraisals
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
cycleGid | query | string | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/appraisals" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/appraisals
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
cycleGid | string | ||
employeeGid | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/appraisals" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cycleGid":"string","employeeGid":"string"}'Get
/api/v1/payroll/appraisals/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/appraisals/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Update
/api/v1/payroll/appraisals/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
overallRating | integer | ||
selfComments | string | ||
reviewerComments | string | ||
status | string | ||
ratings | array of object | ||
ratings[].competency | string | ||
ratings[].rating | integer | ||
ratings[].comment | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/appraisals/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"overallRating":1,"selfComments":"string","reviewerComments":"string","status":"string","ratings":[{"competency":"string","rating":1,"comment":"string"}]}'Delete
/api/v1/payroll/appraisals/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/appraisals/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Complete
/api/v1/payroll/appraisals/{gid}/complete
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/appraisals/{gid}/complete" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List cycles
/api/v1/payroll/appraisals/cycles
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/appraisals/cycles" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create cycle
/api/v1/payroll/appraisals/cycles
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
periodFrom | string (date) | ||
periodTo | string (date) | ||
status | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/appraisals/cycles" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","periodFrom":"2026-10-12","periodTo":"2026-10-12","status":"string"}'Update cycle
/api/v1/payroll/appraisals/cycles/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
periodFrom | string (date) | ||
periodTo | string (date) | ||
status | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/appraisals/cycles/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","periodFrom":"2026-10-12","periodTo":"2026-10-12","status":"string"}'Delete cycle
/api/v1/payroll/appraisals/cycles/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/appraisals/cycles/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/assets
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
status | query | string | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/assets" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/assets
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
assetTag | string | ||
name | string | Yes | required |
category | string | ||
serialNumber | string | ||
purchaseDate | string (date) | ||
purchaseCost | number | ||
vendor | string | ||
status | string | ||
notes | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/assets" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string"}'Get
/api/v1/payroll/assets/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/assets/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Update
/api/v1/payroll/assets/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
assetTag | string | ||
name | string | Yes | required |
category | string | ||
serialNumber | string | ||
purchaseDate | string (date) | ||
purchaseCost | number | ||
vendor | string | ||
status | string | ||
notes | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/assets/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"assetTag":"string","name":"string","category":"string","serialNumber":"string","purchaseDate":"2026-10-12","purchaseCost":100}'Delete
/api/v1/payroll/assets/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/assets/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Assign
/api/v1/payroll/assets/{gid}/assign
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
conditionNote | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/assets/{gid}/assign" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","conditionNote":"string"}'Return asset
/api/v1/payroll/assets/{gid}/return
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
conditionNote | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/assets/{gid}/return" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"conditionNote":"string"}'For date
/api/v1/payroll/attendance
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
date | query | string (date) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/attendance" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Mark
/api/v1/payroll/attendance
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
date | query | string (date) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
date | string (date) | ||
status | string | ||
remarks | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '[{"employeeGid":"string","date":"2026-10-12","status":"string","remarks":"string"}]'Check in
/api/v1/payroll/attendance/check-in
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/check-in" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string"}'Check out
/api/v1/payroll/attendance/check-out
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/check-out" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string"}'Get config
/api/v1/payroll/attendance/config
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/attendance/config" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Update config
/api/v1/payroll/attendance/config
Scope: Scalar360.payroll.UPDATE
| Body field | Type | Required | Notes |
|---|---|---|---|
fullDayHours | number | ||
halfDayHours | number | ||
shiftStart | string | ||
shiftEnd | string | ||
graceMinutes | integer | ||
workweek | string | ||
autoStatus | boolean | ||
webCheckin | boolean | ||
ipWhitelist | string | ||
timezone | string | ||
officeLat | number | ||
officeLng | number | ||
geofenceRadiusM | integer | ||
requireGeofence | boolean | ||
requireSelfie | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/attendance/config" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fullDayHours":100,"halfDayHours":100,"shiftStart":"string","shiftEnd":"string","graceMinutes":1,"workweek":"string"}'Import file
/api/v1/payroll/attendance/import
Scope: Scalar360.payroll.CREATE
Request body: multipart/form-data with a file field.
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/import" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-F "file=@/path/to/file"Import preview
/api/v1/payroll/attendance/import/preview
Scope: Scalar360.payroll.CREATE
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/import/preview" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '"string"'List
/api/v1/payroll/attendance/regularizations
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
status | query | string | No |
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/attendance/regularizations" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Apply
/api/v1/payroll/attendance/regularizations
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
attDate | string (date) | ||
checkIn | string | ||
checkOut | string | ||
status | string | ||
reason | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/regularizations" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","attDate":"2026-10-12","checkIn":"string","checkOut":"string","status":"string","reason":"string"}'Approve
/api/v1/payroll/attendance/regularizations/{gid}/approve
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/regularizations/{gid}/approve" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Reject
/api/v1/payroll/attendance/regularizations/{gid}/reject
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/attendance/regularizations/{gid}/reject" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Summary
/api/v1/payroll/attendance/summary
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
month | query | string | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/attendance/summary" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Today
/api/v1/payroll/attendance/today
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/attendance/today" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/checklist-templates
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/checklist-templates" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/checklist-templates
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
kind | string | ||
active | boolean | ||
items | array of object | ||
items[].title | string | ||
items[].description | string | ||
items[].sortOrder | integer |
curl -X POST "https://api.scalar360.com/api/v1/payroll/checklist-templates" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","kind":"string","active":true,"items":[{"title":"string","description":"string","sortOrder":1}]}'Update
/api/v1/payroll/checklist-templates/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
kind | string | ||
active | boolean | ||
items | array of object | ||
items[].title | string | ||
items[].description | string | ||
items[].sortOrder | integer |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/checklist-templates/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","kind":"string","active":true,"items":[{"title":"string","description":"string","sortOrder":1}]}'Delete
/api/v1/payroll/checklist-templates/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/checklist-templates/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/checklists
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
kind | query | string | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/checklists" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Start
/api/v1/payroll/checklists
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
templateGid | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/checklists" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","templateGid":"string"}'Get
/api/v1/payroll/checklists/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/checklists/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Delete
/api/v1/payroll/checklists/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/checklists/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Toggle task
/api/v1/payroll/checklists/{gid}/tasks/{taskGid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
taskGid | path | string (uuid) | Yes |
curl -X PATCH "https://api.scalar360.com/api/v1/payroll/checklists/{gid}/tasks/{taskGid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Get
/api/v1/payroll/dashboard
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/dashboard" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List departments
/api/v1/payroll/departments
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/departments" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create department
/api/v1/payroll/departments
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
code | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/departments" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","code":"string"}'Update department
/api/v1/payroll/departments/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
code | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/departments/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","code":"string"}'Delete department
/api/v1/payroll/departments/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/departments/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List designations
/api/v1/payroll/designations
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/designations" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create designation
/api/v1/payroll/designations
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
title | string | ||
departmentGid | string | ||
departmentName | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/designations" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","title":"string","departmentGid":"string","departmentName":"string"}'Update designation
/api/v1/payroll/designations/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
title | string | ||
departmentGid | string | ||
departmentName | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/designations/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","title":"string","departmentGid":"string","departmentName":"string"}'Delete designation
/api/v1/payroll/designations/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/designations/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/devices
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/devices" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/devices
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
serialNo | string | ||
location | string | ||
ipWhitelist | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/devices" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","serialNo":"string","location":"string","ipWhitelist":"string"}'Update
/api/v1/payroll/devices/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
serialNo | string | ||
location | string | ||
ipWhitelist | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/devices/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","serialNo":"string","location":"string","ipWhitelist":"string"}'Delete
/api/v1/payroll/devices/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/devices/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Set active
/api/v1/payroll/devices/{gid}/active
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
active | query | boolean | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/devices/{gid}/active" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Regenerate
/api/v1/payroll/devices/{gid}/regenerate-token
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/devices/{gid}/regenerate-token" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Punches
/api/v1/payroll/devices/punches
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
page | query | integer (default 1) | No |
pageSize | query | integer (default 50) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/devices/punches" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Unmapped
/api/v1/payroll/devices/unmapped-count
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/devices/unmapped-count" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/documents
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
employeeGid | query | string | No |
expiringOnly | query | boolean (default false) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/documents" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Upload
/api/v1/payroll/documents
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
employeeGid | query | string | Yes |
name | query | string | No |
docType | query | string | No |
docNumber | query | string | No |
issueDate | query | string (date) | No |
expiryDate | query | string (date) | No |
notes | query | string | No |
Request body: multipart/form-data with a file field.
curl -X POST "https://api.scalar360.com/api/v1/payroll/documents" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-F "file=@/path/to/file"Delete
/api/v1/payroll/documents/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/documents/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/employees
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
q | query | string (default ) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/employees" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/employees
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
employeeCode | string | ||
fullName | string | ||
email | string | ||
phone | string | ||
dob | string (date) | ||
gender | string | ||
address | string | ||
departmentGid | string | ||
departmentName | string | ||
designationGid | string | ||
designationTitle | string | ||
dateOfJoining | string (date) | ||
employmentType | string | ||
status | string | ||
dateOfExit | string (date) | ||
bankAccountNo | string | ||
ifsc | string | ||
bankName | string | ||
pan | string | ||
uan | string | ||
pfNumber | string | ||
esiNumber | string | ||
biometricId | string | ||
shiftGid | string | ||
shiftName | string | ||
loginEmail | string | ||
role | string | ||
reportingManagerGid | string | ||
reportingManagerName | string | ||
accountStatus | string | ||
locationGid | string | ||
locationName | string | ||
monthlyGross | number | ||
salaryStructure | object | ||
salaryStructure.effectiveFrom | string (date) | ||
salaryStructure.ctcAnnual | number | ||
salaryStructure.pfApplicable | boolean | ||
salaryStructure.esiApplicable | boolean | ||
salaryStructure.ptApplicable | boolean | ||
salaryStructure.components | array of object | ||
workState | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/employees" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","employeeCode":"string","fullName":"string","email":"string","phone":"string","dob":"2026-10-12"}'Get
/api/v1/payroll/employees/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/employees/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Update
/api/v1/payroll/employees/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
employeeCode | string | ||
fullName | string | ||
email | string | ||
phone | string | ||
dob | string (date) | ||
gender | string | ||
address | string | ||
departmentGid | string | ||
departmentName | string | ||
designationGid | string | ||
designationTitle | string | ||
dateOfJoining | string (date) | ||
employmentType | string | ||
status | string | ||
dateOfExit | string (date) | ||
bankAccountNo | string | ||
ifsc | string | ||
bankName | string | ||
pan | string | ||
uan | string | ||
pfNumber | string | ||
esiNumber | string | ||
biometricId | string | ||
shiftGid | string | ||
shiftName | string | ||
loginEmail | string | ||
role | string | ||
reportingManagerGid | string | ||
reportingManagerName | string | ||
accountStatus | string | ||
locationGid | string | ||
locationName | string | ||
monthlyGross | number | ||
salaryStructure | object | ||
salaryStructure.effectiveFrom | string (date) | ||
salaryStructure.ctcAnnual | number | ||
salaryStructure.pfApplicable | boolean | ||
salaryStructure.esiApplicable | boolean | ||
salaryStructure.ptApplicable | boolean | ||
salaryStructure.components | array of object | ||
workState | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/employees/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","employeeCode":"string","fullName":"string","email":"string","phone":"string","dob":"2026-10-12"}'Delete
/api/v1/payroll/employees/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/employees/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Disable account
/api/v1/payroll/employees/{gid}/account/disable
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/employees/{gid}/account/disable" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Gen pin
/api/v1/payroll/employees/{gid}/account/pin
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/employees/{gid}/account/pin" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Set salary structure
/api/v1/payroll/employees/{gid}/salary-structure
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
effectiveFrom | string (date) | ||
ctcAnnual | number | ||
pfApplicable | boolean | ||
esiApplicable | boolean | ||
ptApplicable | boolean | ||
components | array of object | ||
components[].name | string | ||
components[].kind | string | ||
components[].calcType | string | ||
components[].value | number |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/employees/{gid}/salary-structure" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"effectiveFrom":"2026-10-12","ctcAnnual":100,"pfApplicable":true,"esiApplicable":true,"ptApplicable":true,"components":[{"name":"string","kind":"string","calcType":"string","value":100}]}'Import employees
/api/v1/payroll/employees/import
Scope: Scalar360.payroll.CREATE
Request body: multipart/form-data with a file field.
curl -X POST "https://api.scalar360.com/api/v1/payroll/employees/import" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-F "file=@/path/to/file"Template csv
/api/v1/payroll/employees/import/template.csv
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/employees/import/template.csv" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Template xlsx
/api/v1/payroll/employees/import/template.xlsx
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/employees/import/template.xlsx" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Estimate
/api/v1/payroll/employees/professional-tax-estimate
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gross | query | number | Yes |
workState | query | string | No |
gender | query | string | No |
dob | query | string (date) | No |
month | query | string | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/employees/professional-tax-estimate" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/holidays
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/holidays" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/holidays
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
id | string | ||
name | string | ||
date | string (date) | ||
type | string | ||
recurring | boolean | ||
description | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/holidays" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":"string","name":"string","date":"2026-10-12","type":"string","recurring":true,"description":"string"}'Update
/api/v1/payroll/holidays/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
id | string | ||
name | string | ||
date | string (date) | ||
type | string | ||
recurring | boolean | ||
description | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/holidays/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":"string","name":"string","date":"2026-10-12","type":"string","recurring":true,"description":"string"}'Delete
/api/v1/payroll/holidays/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/holidays/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Balances
/api/v1/payroll/leave/balances
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
employeeGid | query | string (uuid) | Yes |
year | query | integer | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/leave/balances" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List requests
/api/v1/payroll/leave/requests
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
status | query | string | No |
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/leave/requests" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Apply
/api/v1/payroll/leave/requests
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
leaveTypeGid | string | ||
fromDate | string (date) | ||
toDate | string (date) | ||
days | number | ||
reason | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/leave/requests" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","leaveTypeGid":"string","fromDate":"2026-10-12","toDate":"2026-10-12","days":100,"reason":"string"}'Approve
/api/v1/payroll/leave/requests/{gid}/approve
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/leave/requests/{gid}/approve" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Reject
/api/v1/payroll/leave/requests/{gid}/reject
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/leave/requests/{gid}/reject" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List types
/api/v1/payroll/leave/types
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/leave/types" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create type
/api/v1/payroll/leave/types
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
code | string | ||
paid | boolean | ||
annualQuota | number | ||
carryForward | boolean |
curl -X POST "https://api.scalar360.com/api/v1/payroll/leave/types" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","code":"string","paid":true,"annualQuota":100,"carryForward":true}'Update type
/api/v1/payroll/leave/types/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
code | string | ||
paid | boolean | ||
annualQuota | number | ||
carryForward | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/leave/types/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","code":"string","paid":true,"annualQuota":100,"carryForward":true}'Delete type
/api/v1/payroll/leave/types/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/leave/types/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/letter-templates
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
activeOnly | query | boolean (default false) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/letter-templates" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/letter-templates
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
type | string | ||
subject | string | ||
body | string | ||
active | boolean |
curl -X POST "https://api.scalar360.com/api/v1/payroll/letter-templates" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","type":"string","subject":"string","body":"string","active":true}'Update
/api/v1/payroll/letter-templates/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
type | string | ||
subject | string | ||
body | string | ||
active | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/letter-templates/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","type":"string","subject":"string","body":"string","active":true}'Delete
/api/v1/payroll/letter-templates/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/letter-templates/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/letters
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
type | query | string | No |
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/letters" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Generate
/api/v1/payroll/letters
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
templateGid | string | ||
issueDate | string (date) | ||
subject | string | ||
body | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/letters" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","templateGid":"string","issueDate":"2026-10-12","subject":"string","body":"string"}'Get
/api/v1/payroll/letters/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/letters/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Delete
/api/v1/payroll/letters/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/letters/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"/api/v1/payroll/letters/{gid}/pdf
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/letters/{gid}/pdf" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/locations
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/locations" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/locations
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
lat | number | ||
lng | number | ||
radiusM | integer | ||
active | boolean |
curl -X POST "https://api.scalar360.com/api/v1/payroll/locations" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","lat":100,"lng":100,"radiusM":1,"active":true}'Update
/api/v1/payroll/locations/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
lat | number | ||
lng | number | ||
radiusM | integer | ||
active | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/locations/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","lat":100,"lng":100,"radiusM":1,"active":true}'Delete
/api/v1/payroll/locations/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/locations/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Get
/api/v1/payroll/payslips/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/payslips/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"/api/v1/payroll/payslips/{gid}/pdf
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/payslips/{gid}/pdf" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Preview pdf
/api/v1/payroll/payslips/preview-pdf
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
payslipTemplate | string | ||
accentColor | string | ||
logoUrl | string | ||
payslipNote | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/payslips/preview-pdf" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"payslipTemplate":"string","accentColor":"string","logoUrl":"string","payslipNote":"string"}'List
/api/v1/payroll/requests
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
type | query | string | No |
status | query | string | No |
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/requests" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/requests
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
type | string | ||
employeeGid | string | ||
fromDate | string (date) | ||
toDate | string (date) | ||
days | number | ||
reason | string | ||
destination | string | ||
purpose | string | ||
travelMode | string | ||
estimatedCost | number | ||
advanceRequested | number |
curl -X POST "https://api.scalar360.com/api/v1/payroll/requests" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"string","employeeGid":"string","fromDate":"2026-10-12","toDate":"2026-10-12","days":100,"reason":"string"}'Approve
/api/v1/payroll/requests/{gid}/approve
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
note | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/requests/{gid}/approve" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"note":"string"}'Cancel
/api/v1/payroll/requests/{gid}/cancel
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/requests/{gid}/cancel" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Reject
/api/v1/payroll/requests/{gid}/reject
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
note | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/requests/{gid}/reject" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"note":"string"}'List
/api/v1/payroll/runs
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/runs" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/runs
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
month | query | string | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/runs" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Get
/api/v1/payroll/runs/{gid}
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/runs/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Delete
/api/v1/payroll/runs/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/runs/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Approve
/api/v1/payroll/runs/{gid}/approve
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/runs/{gid}/approve" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Mark paid
/api/v1/payroll/runs/{gid}/mark-paid
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
paidDate | string (date) |
curl -X POST "https://api.scalar360.com/api/v1/payroll/runs/{gid}/mark-paid" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"paidDate":"2026-10-12"}'Preview
/api/v1/payroll/runs/preview
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
month | query | string | Yes |
curl -X GET "https://api.scalar360.com/api/v1/payroll/runs/preview" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List
/api/v1/payroll/salary-revisions
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
status | query | string | No |
page | query | integer (default 1) | No |
pageSize | query | integer (default 20) | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/salary-revisions" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/salary-revisions
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
proposedCtc | number | ||
effectiveDate | string (date) | ||
reason | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/salary-revisions" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","proposedCtc":100,"effectiveDate":"2026-10-12","reason":"string"}'Apply
/api/v1/payroll/salary-revisions/{gid}/apply
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/salary-revisions/{gid}/apply" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Approve
/api/v1/payroll/salary-revisions/{gid}/approve
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
note | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/salary-revisions/{gid}/approve" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"note":"string"}'Cancel
/api/v1/payroll/salary-revisions/{gid}/cancel
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X POST "https://api.scalar360.com/api/v1/payroll/salary-revisions/{gid}/cancel" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Reject
/api/v1/payroll/salary-revisions/{gid}/reject
Scope: Scalar360.payroll.CREATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
note | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/salary-revisions/{gid}/reject" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"note":"string"}'List
/api/v1/payroll/shifts
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/shifts" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create
/api/v1/payroll/shifts
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
startTime | string | ||
endTime | string | ||
fullDayHours | number | ||
halfDayHours | number | ||
graceMinutes | integer |
curl -X POST "https://api.scalar360.com/api/v1/payroll/shifts" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","startTime":"string","endTime":"string","fullDayHours":100,"halfDayHours":100}'Update
/api/v1/payroll/shifts/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
gid | string | ||
name | string | ||
startTime | string | ||
endTime | string | ||
fullDayHours | number | ||
halfDayHours | number | ||
graceMinutes | integer |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/shifts/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gid":"string","name":"string","startTime":"string","endTime":"string","fullDayHours":100,"halfDayHours":100}'Delete
/api/v1/payroll/shifts/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/shifts/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Get
/api/v1/payroll/statutory-config
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/statutory-config" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Update
/api/v1/payroll/statutory-config
Scope: Scalar360.payroll.UPDATE
| Body field | Type | Required | Notes |
|---|---|---|---|
pfEmployeePct | number | ||
pfEmployerPct | number | ||
pfWageCeiling | number | ||
esiEmployeePct | number | ||
esiEmployerPct | number | ||
esiWageCeiling | number | ||
ptMonthly | number | ||
tdsMode | string | ||
ptMethod | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/statutory-config" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"pfEmployeePct":100,"pfEmployerPct":100,"pfWageCeiling":100,"esiEmployeePct":100,"esiEmployerPct":100,"esiWageCeiling":100}'Settings
/api/v1/payroll/statutory-config/professional-tax
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/statutory-config/professional-tax" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Save
/api/v1/payroll/statutory-config/professional-tax/states/{stateCode}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
stateCode | path | string | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
stateCode | string | ||
stateName | string | ||
levied | boolean | ||
basis | string | ||
seniorExemptAge | integer | ||
slabs | array of object | ||
slabs[].gender | string | ||
slabs[].upTo | number | ||
slabs[].amount | number | ||
slabs[].febAmount | number | ||
note | string | ||
customised | boolean | ||
hasBuiltIn | boolean | ||
inUse | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/statutory-config/professional-tax/states/{stateCode}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"stateCode":"string","stateName":"string","levied":true,"basis":"string","seniorExemptAge":1,"slabs":[{"gender":"string","upTo":100,"amount":100,"febAmount":100}]}'Reset
/api/v1/payroll/statutory-config/professional-tax/states/{stateCode}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
stateCode | path | string | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/statutory-config/professional-tax/states/{stateCode}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List courses
/api/v1/payroll/training/courses
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/training/courses" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create course
/api/v1/payroll/training/courses
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
provider | string | ||
category | string | ||
description | string | ||
durationHours | number | ||
active | boolean |
curl -X POST "https://api.scalar360.com/api/v1/payroll/training/courses" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","provider":"string","category":"string","description":"string","durationHours":100,"active":true}'Update course
/api/v1/payroll/training/courses/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
provider | string | ||
category | string | ||
description | string | ||
durationHours | number | ||
active | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/training/courses/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","provider":"string","category":"string","description":"string","durationHours":100,"active":true}'Delete course
/api/v1/payroll/training/courses/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/training/courses/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List enrollments
/api/v1/payroll/training/enrollments
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
status | query | string | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/training/enrollments" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create enrollment
/api/v1/payroll/training/enrollments
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
courseGid | string | ||
status | string | ||
enrolledDate | string (date) | ||
completedDate | string (date) | ||
score | number | ||
certificateNo | string | ||
certificateExpiry | string (date) | ||
notes | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/training/enrollments" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","courseGid":"string","status":"string","enrolledDate":"2026-10-12","completedDate":"2026-10-12","score":100}'Update enrollment
/api/v1/payroll/training/enrollments/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
courseGid | string | ||
status | string | ||
enrolledDate | string (date) | ||
completedDate | string (date) | ||
score | number | ||
certificateNo | string | ||
certificateExpiry | string (date) | ||
notes | string |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/training/enrollments/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","courseGid":"string","status":"string","enrolledDate":"2026-10-12","completedDate":"2026-10-12","score":100}'Delete enrollment
/api/v1/payroll/training/enrollments/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/training/enrollments/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List matrix
/api/v1/payroll/training/skill-matrix
Scope: Scalar360.payroll.READ
| Parameter | In | Type | Required |
|---|---|---|---|
employeeGid | query | string | No |
curl -X GET "https://api.scalar360.com/api/v1/payroll/training/skill-matrix" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Upsert matrix
/api/v1/payroll/training/skill-matrix
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
employeeGid | string | ||
skillGid | string | ||
proficiency | string | ||
rating | integer | ||
note | string |
curl -X POST "https://api.scalar360.com/api/v1/payroll/training/skill-matrix" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"employeeGid":"string","skillGid":"string","proficiency":"string","rating":1,"note":"string"}'Delete matrix
/api/v1/payroll/training/skill-matrix/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/training/skill-matrix/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"List skills
/api/v1/payroll/training/skills
Scope: Scalar360.payroll.READ
curl -X GET "https://api.scalar360.com/api/v1/payroll/training/skills" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"Create skill
/api/v1/payroll/training/skills
Scope: Scalar360.payroll.CREATE
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
category | string | ||
description | string | ||
active | boolean |
curl -X POST "https://api.scalar360.com/api/v1/payroll/training/skills" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","category":"string","description":"string","active":true}'Update skill
/api/v1/payroll/training/skills/{gid}
Scope: Scalar360.payroll.UPDATE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
name | string | ||
category | string | ||
description | string | ||
active | boolean |
curl -X PUT "https://api.scalar360.com/api/v1/payroll/training/skills/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"string","category":"string","description":"string","active":true}'Delete skill
/api/v1/payroll/training/skills/{gid}
Scope: Scalar360.payroll.DELETE
| Parameter | In | Type | Required |
|---|---|---|---|
gid | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/payroll/training/skills/{gid}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"