Cost centers let you tag wages with your own categories, like clients, jobs, departments, or projects, so you can allocate payroll costs the way your business needs to report them. You attach cost centers to the wages you send us, and then use them to organize payroll expense data in the Payroll Expenses API, in reports, and in your general ledger exports.
The Cost Centers API is how you set up and manage the cost center types your company uses. A cost center type is the category (for example, "Client"), and a cost center value is one entry within it (for example, "Acme Co."). You manage types with the endpoints in this section. Values don't need to be set up ahead of time: Everee creates a value the first time you use it.
đ Types, keys, and slots
Each cost center type has:
- A key, like
clientId, which identifies the type in the API. You use the key as thetypeof each entry in thecostCentersproperty of shifts, payable items, and other wage items. Keys can contain only letters, numbers, underscores, and hyphens. They're case-sensitive, and they can't be changed after the cost center is created. - A display name, like "Client", which is what Everee shows in the admin portal and in reports. You can change this at any time.
- A slot: 1, 2, or 3. A slot identifies where the cost center appears in Everee, as "Cost Center 1", "Cost Center 2", or "Cost Center 3" in the admin portal, reports, and file exports. You choose it when you create the cost center, and it doesn't change.
A company can have up to three active cost center types, one per slot. When you create a cost center, you choose which slot it goes in, and the slot has to be free. When you archive one, its slot becomes free again.
Each wage item can be coded to up to three cost centers, with at most one value per type.
Keys must exist and be activeEvery
typeyou send in acostCentersproperty must be the key of an existing, active cost center. If it's unknown or has been archived, the request is rejected with a 400 error. Create the cost center with the Cost Centers API before you use its key. Values are different: Everee creates a value automatically the first time you use it.
đˇ Default cost centers for workers
You can set default cost centers on a worker's position using the costCenters property, a list of entries with the same shape as costCenters on shifts and payable items: each has a type (the cost center key) and a value, with at most one entry per type. You can send it when you create a worker, kick off onboarding, rehire a worker, or update a worker's position. Leave it out when creating, inviting, or rehiring a worker for no defaults.
These defaults work like a worker's default work location, Workers' Comp class, and SOC code. They're used for any wage that doesn't specify its own value for a cost center type:
- If a shift or time card entry has a
costCentersentry for a cost center type, that value is used. - If it doesn't, the worker's default for that type is used, if they have one.
This applies to hourly wages from shifts and time cards, and to wages generated automatically for paid time off. It doesn't apply to payable items, which only use the costCenters you send with them.
When you update a worker's position through the API, leaving out costCenters keeps the worker's current defaults. Sending an empty array clears them all, and sending a list replaces the whole set, so include every default you want the worker to keep.
A default applies only while its cost center is active.
đ Changing cost centers safely
Renaming is safe. Changing a display name only changes the label. The key, the values coded to it, and everything in your history stay the same, so use this to fix a typo or reword a name.
If a cost center's meaning changes, archive it and create a new one. Say "Department" needs to become "Project". Renaming would make all your existing "Department" values look like projects in reports. Instead:
- Archive the old cost center. Values already coded to it stay on existing wages and in reports, attributed to the old cost center, and it keeps its slot for that history.
- Create a new cost center with a new key, in the slot you just freed (or any other free slot).
- Set worker defaults again for the new key if you need them. Defaults are stored per cost center, so when you archive a cost center, any worker defaults set for it stop applying and aren't carried over. The new cost center starts with no worker defaults.
- Update your integration to send the new key.
Archived keys can't be reused, so a replacement always needs a new key.