Skip to content

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

FieldTypeRequiredDescription
namestringYes

Descriptive label for the band (e.g. "Senior Engineer", "Level 4").

Max length: 180

currencystringNo

ISO 4217 three-letter currency code. Defaults to USD.

Default: "USD" · Min length: 3 · Max length: 3

min_amountnumberYes

Lower bound of the salary range in the specified currency.

Minimum: 0

max_amountnumberYes

Upper bound of the salary range; must be >= min_amount.

Minimum: 0

scope_jsonstringNo

Optional JSON object restricting the band's applicability, e.g. {"departments": ["Engineering"], "positions": [12, 15]}.

statusstringNo

Whether this band is currently in effect.

One of: "active", "inactive" · Default: "active"

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"}'
Loading