Organisation API
17 endpoints, generated from packages/core/openapi/v1.snapshot.json (OpenAPI 3.1.0, contract version 1.0). Conventions for lists, errors, money and authentication are on the API conventions page.
GET/api/v1/organisation/allowance-types
List recurring allowance types
Responses
200 Success. object
itemsarray of objectrequiredidstringrequiredcodestringrequirednamestringrequiredarchivedbooleanrequired
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/organisation/allowance-types
Create an allowance type
Request body
application/json, object, required
codestringrequiredmin length 1 · max length 30
namestringrequiredmin length 1 · max length 80
Responses
201 Success. object
idstringrequiredcodestringrequirednamestringrequiredarchivedbooleanrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
GET/api/v1/organisation/checklist-templates
List onboarding and offboarding checklist templates
Responses
200 Success. object
itemsarray of objectrequiredidstringrequiredkindenumrequiredone of "onboarding", "offboarding"
namestringrequiredisDefaultbooleanrequireditemsarray of objectrequiredtitlestringrequiredassigneeRoleenumrequiredone of "hr_admin", "payroll_admin", "manager", "employee"
dueOffsetDaysintegerrequiredmin -9007199254740991
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/organisation/checklist-templates
Create a checklist template
Request body
application/json, object, required
kindenumrequiredone of "onboarding", "offboarding"
namestringrequiredmin length 1 · max length 80
isDefaultbooleanitemsarray of objectrequiredtitlestringrequiredmin length 1 · max length 160
assigneeRoleenumrequiredone of "hr_admin", "payroll_admin", "manager", "employee"
dueOffsetDaysintegerrequiredmin -365 · max 365
Responses
201 Success. object
idstringrequiredkindenumrequiredone of "onboarding", "offboarding"
namestringrequiredisDefaultbooleanrequireditemsarray of objectrequiredtitlestringrequiredassigneeRoleenumrequiredone of "hr_admin", "payroll_admin", "manager", "employee"
dueOffsetDaysintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required
GET/api/v1/organisation/profile
Get the company profile (legal entity)
Responses
200 Success. object
profileobject or nullrequiredlegalNamestringrequiredtradingNamestring | nullrequireduenstringrequiredcsnstring | nullrequiredaddressobjectrequiredblockstring | nullrequiredstreetstring | nullrequiredunitstring | nullrequiredbuildingstring | nullrequiredpostalCodestring | nullrequired
hasLogobooleanrequiredtimeZone"Asia/Singapore"requiredcurrency"SGD"requiredpayrollReadybooleanrequiredmissingForPayrollarray of stringrequiredupdatedAtstringrequired
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
PUT/api/v1/organisation/profile
Save the company profile
Legal name, UEN (ACRA formats), CSN (UEN + payment type + serial) and registered address.
Request body
application/json, object, required
legalNamestringrequiredmin length 1 · max length 200
tradingNamestring or nullmax length 200
uenstringrequiredcsnstring | nulladdressBlockstring or nullmax length 200
addressStreetstring or nullmax length 200
addressUnitstring or nullmax length 200
addressBuildingstring or nullmax length 200
postalCodestring | null
Responses
200 Success. object
profileobjectrequiredlegalNamestringrequiredtradingNamestring | nullrequireduenstringrequiredcsnstring | nullrequiredaddressobjectrequiredblockstring | nullrequiredstreetstring | nullrequiredunitstring | nullrequiredbuildingstring | nullrequiredpostalCodestring | nullrequired
hasLogobooleanrequiredtimeZone"Asia/Singapore"requiredcurrency"SGD"requiredpayrollReadybooleanrequiredmissingForPayrollarray of stringrequiredupdatedAtstringrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
GET/api/v1/organisation/profile/logo
Download the company logo
Responses
200 The logo image image/png
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required - 404
not_found
PUT/api/v1/organisation/profile/logo
Upload the company logo (PNG, at most 1 MB)
Request body
application/json, object, required
contentTypestringrequireddataBase64stringrequiredmax length 1500000
Responses
204 No content.
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
GET/api/v1/organisation/setup-checklist
Organisation setup progress (derived from data)
Responses
200 Success. object
completebooleanrequiredstepsarray of objectrequiredidenumrequiredone of "company_profile", "department", "work_schedule", "employee"
titlestringrequireddonebooleanrequiredhrefstringrequired
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
GET/api/v1/organisation/structure/{kind}
List departments, teams, locations or cost centres
Parameters
| Name | In | Type | Required |
|---|---|---|---|
kind | path | enum | yes |
Responses
200 Success. object
itemsarray of objectrequiredidstringrequirednamestringrequiredcodestring | nulldepartmentIdstring | nulladdressstring | nullpostalCodestring | nullarchivedbooleanrequiredarchivedAtstring | nullrequiredemployeeCountintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/organisation/structure/{kind}
Create a department, team, location or cost centre
Parameters
| Name | In | Type | Required |
|---|---|---|---|
kind | path | enum | yes |
Request body
application/json, object, required
Responses
201 Success. object
idstringrequirednamestringrequiredcodestring | nulldepartmentIdstring | nulladdressstring | nullpostalCodestring | nullarchivedbooleanrequiredarchivedAtstring | nullrequiredemployeeCountintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
PATCH/api/v1/organisation/structure/{kind}/{id}
Rename or edit a structure entry
Parameters
| Name | In | Type | Required |
|---|---|---|---|
kind | path | enum | yes |
id | path | string (uuid) | yes |
Request body
application/json, object, required
Responses
200 Success. object
idstringrequirednamestringrequiredcodestring | nulldepartmentIdstring | nulladdressstring | nullpostalCodestring | nullarchivedbooleanrequiredarchivedAtstring | nullrequiredemployeeCountintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict
POST/api/v1/organisation/structure/{kind}/{id}/archive
Archive or restore a structure entry
Archiving an entry used by current employees fails with 409 in_use, the count and a link to the filtered employee list.
Parameters
| Name | In | Type | Required |
|---|---|---|---|
kind | path | enum | yes |
id | path | string (uuid) | yes |
Request body
application/json, object, required
archivedbooleanrequired
Responses
200 Success. object
idstringrequirednamestringrequiredcodestring | nulldepartmentIdstring | nulladdressstring | nullpostalCodestring | nullarchivedbooleanrequiredarchivedAtstring | nullrequiredemployeeCountintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict,in_use
GET/api/v1/organisation/work-schedules
List work schedules with their versions
Responses
200 Success. object
itemsarray of objectrequiredidstringrequirednamestringrequiredkindenumrequiredone of "fixed", "shift"
isDefaultbooleanrequiredarchivedbooleanrequiredcurrentobject or nullrequiredeffectiveFromstringrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
versionsarray of objectrequiredeffectiveFromstringrequiredeffectiveTostring | nullrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/organisation/work-schedules
Create a work schedule
Request body
application/json, object | object, required
Responses
201 Success. object
idstringrequirednamestringrequiredkindenumrequiredone of "fixed", "shift"
isDefaultbooleanrequiredarchivedbooleanrequiredcurrentobject or nullrequiredeffectiveFromstringrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
versionsarray of objectrequiredeffectiveFromstringrequiredeffectiveTostring | nullrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
PUT/api/v1/organisation/work-schedules/{id}
Change a work schedule from a date (new effective-dated version)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Request body
application/json, object | object, required
Responses
200 Success. object
idstringrequirednamestringrequiredkindenumrequiredone of "fixed", "shift"
isDefaultbooleanrequiredarchivedbooleanrequiredcurrentobject or nullrequiredeffectiveFromstringrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
versionsarray of objectrequiredeffectiveFromstringrequiredeffectiveTostring | nullrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict
POST/api/v1/organisation/work-schedules/{id}/default
Make a work schedule the organisation default
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Responses
200 Success. object
idstringrequirednamestringrequiredkindenumrequiredone of "fixed", "shift"
isDefaultbooleanrequiredarchivedbooleanrequiredcurrentobject or nullrequiredeffectiveFromstringrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
versionsarray of objectrequiredeffectiveFromstringrequiredeffectiveTostring | nullrequireddaysarray of object or nullrequiredtypeenumrequiredone of "working", "half", "off", "rest"
minutesintegerrequiredmin -9007199254740991
weeklyMinutesintegerrequiredmin -9007199254740991
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict