Update 3.2.141: A New Table Experience and Public API Version 2
Release 3.2.141 debuts new interactive tables with invoices, adopts shift and position names in the API, plus fixes.
Release date: November 4, 2026
New Features
A new table experience, starting with invoice
We are introducing a new way of working with tables in OnSinch. Instead of every list having its own fixed layout, tables will share one interactive design that you can shape around the way you work. It will gradually come to all tables throughout the app, and the invoice list is the first to get it.

You can try it today with "Try the new table" on the invoice list. Sort and filter right in the column headers, pick which columns to show, and reorder, resize or pin them. Save your filters and column layout as views and switch between them in tabs, or switch to full screen when you need more room.
Clicking a column header opens its menu: sort by the column, pin it to the left or right, hide it, or add another column next to it.

The new "Columns & actions" panel in the table settings puts the whole layout in one place. Drag columns into a new order, pin them to either edge and show or hide them, and decide which row actions get a column of their own and which move into the row menu. Your arrangement is remembered with the rest of the saved view.

The table is marked as beta while we polish it, and the old list stays one click away. Let us know what you think and whether anything you need is missing: your feedback will shape the tables that follow.
US domestic bank accounts
Agencies in the United States can now enter their bank account in the domestic format, with a routing number and an account number.
Improvements
Cleaner links in the message editor
The hyperlink field now starts empty, and a pasted link without a protocol gets https:// added automatically, so links no longer end up as https://https://.
Client document emails
The staff timesheet sent from the shift page now dates its email subject and file name from the first shift. PDF downloads also carry their file name correctly, so names with special characters no longer arrive garbled.
Recipient Quick filter for orders, shifts and positions
The recipients Quick filter for confirmed or invited staff and active or cancelled positions is now also offered when messaging an order, a shift or a position.
Public API
Public API version 2
A second version of the Public API is now available under /api/v2/. It offers the same endpoints, filters, sorting, pagination and responses as version 1, but uses the names Position, Shift and PositionLocation wherever version 1 says Slot, SlotTeam and SlotLocation.
In practice, shifts are created with POST /api/v2/shifts instead of /slotTeams, and fields read position_id, shift_id, position_location_id, position_part_id, positions_amount and sh_positions_amount instead of slot_id, slotteam_id, slotlocation_id, slotpart_id, slots_amount and sh_slots_amount. The nested objects, with tokens and filter prefixes follow suit (with=Job__Shift__Position), and so do validation errors and messages. A version 1 name sent to version 2 answers 400 with the version 2 spelling.
Data values do not change, so GET /api/v2/timelineAudits keeps model=SlotTeam and action=slot_team_close. The documentation at /public-api/ offers both versions, version 2 first.
Both versions will be supported side by side for a while, and version 1 stays unchanged in the meantime. In the end, however, version 1 will be deprecated, so we encourage you to start using version 2 now. We will share more information about migrating to version 2 and the deprecation of version 1 soon.
Complete details for embedded shifts
On both versions, a shift embedded with with=Job__SlotTeam (Job__Shift) on GET /orders, with=SlotTeam or Slot__SlotTeam on GET /attendance and with=Order__Job__SlotTeam on GET /invoices now returns the documented size, backup_size, slots_amount, min_beginning, max_end and the shadow (sh_) aggregates, as the invoice attendance (with=Attendance) already did. The shift schema now documents admin_note and marks size, min_beginning and max_end as nullable.
Bug Fixes
- Builder, new shift form: opened from a location line, the form no longer squeezes the description into a narrow column on laptop screens.
- Builder, groups: hiding or showing a group no longer fails when one of its positions is cancelled or completed, and a cancelled grouped position can be restored only when it matches its group.
- Builder, moving shifts: a shift can no longer be moved into an order with a different pricing system (legacy pricelists vs. new ratelists), and a closed shift on new ratelists can now be moved to another job.
- Attendance builder: approve and decline are offered only for pending applicants, and approving an applicant in grouped positions shows each warning once.
- New ratelists, Price & Wage builder: the Back link of the pricelist and transport builders leads to the matching tab of the ratelists page, and back to the company when the builder was opened from a company page, instead of always to the wagelists. An older revision of a ratelist can be restored as its latest state (as a new revision when the current one is in use), and an old revision can be copied into a new ratelist. The default companies of a tag ratelist now come back as an empty list instead of an error.
- Invoices, overpayment: an invoice paid exactly 1 more than its total is now marked as overpaid instead of not paid.
- Invoices, attachment language: a billing calculation or attendance overview created when the invoice is sent now uses the invoice's language instead of the client company's.
- Transport wallet: the trip time in a staff member's transport wallet record no longer includes the unpaid meeting time.
- Order history: deleting an order, also through the Public API, is now recorded in its history together with the author, and the earlier history of the order is no longer erased.
- Text editor: changing a line to a heading, quote or normal text now changes only the selected lines, not the other lines written with Shift+Enter.
- Contracts: a contract signed in the app is no longer stored or emailed as an unreadable file when the certificate service is busy.
- US addresses: Rhode Island now uses its postal code
RIinstead ofRi, and stored US addresses have been updated to match. - Payouts: the {month} placeholder in the bank transfer message now prints the month name, in the language of the admin sending the payout, instead of the letter F.
That's all for this release. Your feedback shapes what comes next, so let us know how these changes work for you, and if anything is unclear, our support team is happy to help.