Create compensation band
POST/hr/compensation-bands
Creates a new compensation band defining a salary range for a job level or department scope. The max_amount must be greater than or equal to min_amount. Bands default to 'active' status and USD currency unless overridden.
Request
Request body
Content type application/json (required).
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Descriptive label for the band (e.g. "Senior Engineer", "Level 4"). Max length: 180 |
currency | string | No | ISO 4217 three-letter currency code. Defaults to USD. Default: |
min_amount | number | Yes | Lower bound of the salary range in the specified currency. Minimum: 0 |
max_amount | number | Yes | Upper bound of the salary range; must be >= min_amount. Minimum: 0 |
scope_json | string | No | Optional JSON object restricting the band's applicability, e.g. {"departments": ["Engineering"], "positions": [12, 15]}. |
status | string | No | Whether this band is currently in effect. One of: |
Example
{
"name": "Senior Engineer",
"currency": "GHS",
"min_amount": 8000,
"max_amount": 14000,
"scope_json": "{\"departments\":[\"Engineering\"]}",
"status": "active"
}
Responses
302 Redirect to the HR planning index after successful creation
422 Validation error
Content type application/json, any.
Example
{
"errors": {
"max_amount": [
"The max amount must be greater than or equal to min amount."
]
}
}
Example request
curl -X POST "https://{tenant}.faciotech.net/api/v1/hr/compensation-bands" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "Senior Engineer", "currency": "GHS", "min_amount": 8000, "max_amount": 14000, "scope_json": "{\"departments\":[\"Engineering\"]}", "status": "active"}'