Cost centers

Update cost center

Updates a cost center. You can update the name, archive status, approver, delegate, delegate expiry, additional approvers (owner_ids), and cost object type (type) when that feature is enabled for your organization. Passing null for 'approver_id', 'delegate_id', 'delegate_expiry', 'owner_ids', or 'type' does not clear those fields; they remain unchanged. For owner_ids, pass an empty array to clear.

patch/cost_centers/{id}

Request

  • Base URL
    https://api.perk.com
  • URL
    https://api.perk.com/cost_centers/{id}
  • Auth
    none declared. Required headers: Authorization

Path parameters

idstring required

The unique ID of the cost center

Headers

Authorizationstring required

Your Perk API key

Request body

namestring

The new name for the cost center

typestring nullable

Cost object type name to assign. Available only when cost object types are enabled for your organization on request. Non-empty string (max 256 characters). If a type with that name already exists (case-insensitive), it is assigned; otherwise it is created. Omit or null leaves the type unchanged (does not clear). If cost object types are not enabled, type is not a recognized field (a type-only body returns 400). Cannot be set on Yokoy-sourced cost centers (returns 400).

archiveboolean

Set to 'true' to archive the cost center, or 'false' to unarchive it

approver_idinteger

The ID of the user to set as approver. The user must belong to one of the cost center's companies. Passing 'null' does not clear the field

delegate_idinteger

The ID of the user to set as delegate. The delegate must belong to one of the cost center's companies. Passing 'null' does not clear the field

delegate_expirystring

The expiry date for the delegate in YYYY-MM-DD format. Passing 'null' does not clear the field

erp_codestring

Identifier used to associate this cost center with a corresponding record in an external ERP system

company_idsinteger[]

IDs of companies this cost center is scoped to. Must be provided together with 'all_companies'. At least one company required when 'all_companies' is false. Ignored when 'all_companies' is true (company scope is set to all companies in the account). Omit both fields to leave unchanged.

all_companiesboolean

Whether the cost center applies to all companies in the account. Must be provided together with 'company_ids'. When true, 'company_ids' is ignored and the cost center is scoped to all companies in the account. Omit both fields to leave unchanged.

owner_idsinteger[]

IDs of additional travel approvers. Omit or pass null to leave unchanged; pass an empty array to clear; pass a non-empty list to replace. Users must belong to an allowed company for the cost center and must not duplicate approver_id

Example request

{
  "name": "Finance",
  "type": "Department",
  "approver_id": 123,
  "delegate_id": 456,
  "delegate_expiry": "2025-12-31",
  "erp_code": "CC-4210",
  "company_ids": [
    11454,
    22187
  ],
  "owner_ids": [
    789,
    790
  ]
}

Response

Returns '200 OK' and the updated cost center resource.

idstring

The unique ID of the cost center

namestring

The name of the cost center

typestring nullable

Cost object type name, or null if unset. Available only when cost object types are enabled for your organization on request. Omitted from the response when the feature is not enabled.

archivedboolean

Indicates whether the cost center is archived

approver_idinteger

The ID of the approver user, or 'null' if not set

delegate_idinteger

The ID of the delegate user, or 'null' if not set

delegate_expirystring

The expiry date for the delegate in YYYY-MM-DD format, or 'null' if not set

usersobject[]

The users assigned to this cost center

count_usersinteger

The number of users assigned to this cost center

erp_codestring

Identifier used to associate this cost center with a corresponding record in an external ERP system

all_companiesboolean

If 'true', the cost center applies to all companies in the account.

companiesinteger[]

The IDs of companies assigned to this cost center

owner_idsinteger[]

IDs of additional travel approvers

Example response

{
  "id": "1",
  "name": "Finance",
  "type": "Department",
  "approver_id": 123,
  "approver": {
    "id": 123,
    "first_name": "Alex",
    "last_name": "Chen",
    "email": "alex.chen@company.com"
  },
  "delegate_id": 456,
  "delegate": {
    "id": 456,
    "first_name": "Jordan",
    "last_name": "Smith",
    "email": "jordan.smith@company.com"
  },
  "delegate_expiry": "2025-12-31",
  "count_users": 1,
  "erp_code": "CC-4210",
  "companies": [
    1,
    2
  ],
  "owner_ids": [
    789,
    790
  ],
  "owners": [
    {
      "id": 789,
      "first_name": "Sam",
      "last_name": "Patel",
      "email": "sam.patel@company.com"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.