/hr/performance/appraisals/:id and use the Rewards panel (tab rewards).
📷 Screenshot: the Rewards panel on an appraisal detail page, showing the “Propose” button and an existing proposal card — to be added.
Hitaji 360 is multi-business. A reward is stamped with the appraisal’s business and can only be seen, proposed, approved or rejected from within that same business. Make sure the correct business is selected in the switcher before you start — a caller from another business is refused (404) before any pay artefact is created.
Before you start
- The appraisal must be submitted (finalised). A reward can only be proposed off an appraisal whose document status is submitted (docstatus 1). A draft or pending-review appraisal can still have its scores changed, so the system refuses to reward it — you’ll get a message that the appraisal must be submitted first. See Appraisals.
- The employee needs an active employment contract. The reward is tied to the employee’s current contract; the Propose button is disabled (with a “No active employment contract” tooltip) until one is found.
- A bonus needs an earning pay component. If you intend to pay a bonus, your business must have at least one active earning salary component to post it against. See Salary components.
What a reward can do (the two legs)
A reward has a type, which decides which “legs” it carries:The bonus leg
A bonus needs:
On approval, the system creates a submitted Additional Salary for the contract, in the contract’s pay currency (UGX if none is set), dated to the reward’s effective date (or today if none was given). The next payroll run for that employee then picks it up. See Running payroll.
The increment leg
An increment needs:
How the new base is worked out:
- ABSOLUTE — the value is the new base salary.
- PERCENT — the value is added as a percentage on top of the current active base. The system reads the active salary-structure assignment as at the effective date and applies
current base × (1 + N/100). If the contract has no active assignment with a base salary on that date, the increment is refused with a message asking you to use an ABSOLUTE increment instead.
Proposing a reward (the maker step)
- Open the submitted appraisal and go to the Rewards panel.
- Choose Propose.
- Pick the reward type (Bonus, Increment, or Both) and fill the leg(s) — the form only shows and validates the legs your chosen type needs.
- Add an optional reason.
- Choose Propose.
📷 Screenshot: the “Propose Reward” modal with the Bonus leg and Increment leg sections — to be added.The proposal is saved as Proposed. No pay change happens yet. As the modal reminds you, a different approver must approve this proposal before the bonus and/or increment is created. Proposing requires the
hr-performance:write permission.
Approving or rejecting (the checker step)
A pending (Proposed) reward shows Approve and Reject buttons to anyone with approval rights.- Approve & Apply — creates and submits the bonus and/or the salary increment, then marks the reward Applied.
- Reject — marks the reward Rejected. No pay change is made. You can add a reason.
hr-performance:approve permission.
Segregation of duties
The person who approves a reward must not be the person who proposed it. If the proposer tries to approve their own reward, the system refuses with a segregation-of-duties error. This two-person rule is enforced in the service itself, not just by the permission split, so it cannot be bypassed by a role that happens to hold both permissions.Safe to double-click
Approval is idempotent and runs under a row lock. If a reward is already Applied, re-approving simply returns it unchanged. Two simultaneous approvals (or an impatient double-click) serialise — the second waits for the first to finish, sees the reward is already Applied, and does nothing. A reward can therefore never create duplicate pay.Reward statuses
Permissions
All actions are tenant- and business-scoped: a reward belonging to another business — or to a different appraisal accessed through the wrong URL — is treated as not found.
Rewards block deletion of the appraisal and cycle
This is the most important thing to understand before you issue a reward. Once a reward has been issued — that is, it is Approved/Applied, or it has stamped a downstream Additional Salary or Employee Promotion — the parent appraisal can no longer be deleted, and because of that the parent appraisal cycle can no longer be deleted either. The reward has put real money into the payroll pipeline, so the appraisal it came from must stay on the record. If you genuinely need to remove such an appraisal or cycle, the issued reward has to be reversed through payroll first (back out the Additional Salary / Promotion it created), after which the appraisal is free to delete again. See Appraisals and Appraisal cycles for how the deletion guard surfaces there.A reward that is only Proposed (never approved) has not touched payroll and does not block deletion — reject it (or delete the appraisal will simply leave a Proposed row that never materialised).
Behind the scenes
When a reward is approved:- Bonus leg → an Additional Salary is created against the employee’s contract for the bonus amount and component, then submitted, dated to the effective date (or today). The next payroll run includes it.
- Increment leg → the current active base salary is resolved (for PERCENT) or taken outright (for ABSOLUTE), and an Employee Promotion carrying the new base is created and submitted, effective-dated.
- The reward is stamped with the IDs of the artefacts it created and flipped to Applied.
Related
- Appraisals — the appraisal a reward is proposed against; deletion is blocked once a reward is issued
- Appraisal cycles — the cycle that holds the appraisals; cannot be deleted while an issued reward exists
- Performance overview — how performance fits together
- Running payroll — where the bonus Additional Salary is picked up
- Salary components — the earning component a bonus posts against
- Promotions — the Employee Promotion an increment creates