Update 3.2.122: Custom Billing Templates and Expanded Public API
Release 3.2.122 brings custom billing templates, new Public API reimbursement endpoints, in-closing position editing, and faster staff shift loading.
Release date: June 24, 2026
New Features
In-Closing Position Editing
Admins can now edit a position directly from the closing form. A pencil icon on the position heading opens a dialog for changing the position's role, its start and end times, and both its public and staff titles. Edits are applied when you submit the form, and any position with pending changes is clearly marked as unsaved until then. This brings the closing form and the Builder closer together, so quick adjustments during closure no longer mean leaving the flow.
Staff Member Profile Popover in the Closing Form
The popover profile card from the classic interface has been ported into the closing form. Hovering over a staff member's name now reveals their photo, contact details and roles, complete with the one-click copy-to-clipboard icons, and the text can still be selected and copied manually. Admins no longer have to navigate away to a staff member's profile just to grab a phone number or email while closing a shift.
Custom Templates for Calculation, Billing and Price Quote
You can now build custom document templates for three more document types: calculation, billing and price quote. These custom templates are available for the new ratelists only.
Public API
Assign a Staff Member to a Position
The Public API can now assign a staff member to a position, mirroring the gesture admins already use in OnSinch. A user and a position are enough to make the assignment, with an optional payment method. Soft warnings block the assignment by default; opt in with force_create: true to override them just as in the admin UI. Each request batch is all-or-nothing.
Reimbursements via GET and DELETE
As the first step toward managing reimbursements over the API, reimbursements can now be listed and removed through GET and DELETE /api/v1/reimbursements, with filtering, pagination, file attachments and with=Worker embedding.
Original Attendance Role
The original attendance role, snapshotted before the first role-changing move during closing, is now surfaced both as original_role in the Public API attendance list and as a new "Original role" column in the attendance CSV exports, where previously it had to be reconciled by hand. The column is opt-in (off by default) in the export column picker, always present in the detailed job and order attendance exports, and never included in client-facing exports.
Faster Staff Member Attribute Lookups
Staff member attribute lookups over the Public API are now faster, especially for agencies that restrict attributes by profession.
Improvements
Referral Code Field Only When Enabled
The "Referral system code" field on the registration form now appears only when the referral system is turned on in the agency settings. Previously it was always shown, leaving candidates to ask admins about a code that did not exist and assume a referral bonus was on offer.
Faster Available Shifts in the Staff App
The staff app's available shifts list now loads considerably faster, reducing overall system load during peak staff activity. It also resolves shift conflicts faster, most noticeably for staff with many upcoming shifts.
Bug Fixes
- Signature pad on mobile Firefox: The electronic signature pad no longer shifts while a signature is being drawn on mobile Firefox.
- Newsletter subject placeholders: Newsletter emails now substitute placeholders such as
[[name]],[[surname]],[[email]]and[[reset_password_link]]in the subject line per recipient, exactly as they already do in the body, and the preview shows the filled-in subject. Previously the subject was sent verbatim, so every recipient received the literal placeholder text. - Clearer contract limit message: Staff who cannot sign up because their contract has reached a limit (a yearly hours cap or monthly salary cap) now see a message explaining which limit was reached, with the current value and the cap, instead of a misleading "You have no signed contract" when the contract is in fact in place.
- Moving attendance between positions: Fixed moving an attendance between positions when the target position was created from a new position.
- Scheduler card layout: Shift and staff cards in the scheduler timeline now render in the correct condensed or expanded layout on first load, instead of sometimes appearing in the wrong density until the timeline was redrawn.
- Closing form attendance status: The shift closing form no longer reverts a manually changed attendance status (for example from "late" back to "present") after visiting the budget closing step and returning, and the attendance overview now stays in sync with the closing form.
We hope these updates help keep your operations running smoothly. As always, we welcome your feedback on this release, and our support team is on hand should you have any questions or need assistance.