> ## Documentation Index
> Fetch the complete documentation index at: https://api.buildingswell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a per diem code

> **Destructive.** Permanently removes the entry from the list. There is no archive flag on a code and this cannot be undone.

Nothing else breaks, and nothing else changes either. Referenced by value from a person's per diem entries, which the v2 public API does not expose. Those are plain string values with no foreign key behind them, so every record that already carries this code keeps it — the value simply stops appearing in the list. To retire a code while keeping it valid on existing records, `PATCH` it with `{ "isActive": false }` instead.



## OpenAPI

````yaml /openapi.yaml delete /per-diem-code/{id}
openapi: 3.0.3
info:
  title: BuildingSwell Public API
  version: 2.0.0
  description: >
    The BuildingSwell v2 public API. Every request needs an `X-API-Key` header,
    and

    every key is scoped to one organization, so you only ever see your own data.


    Base URL: `https://app.buildingswell.com/api/v2`


    Most resources share the same CRUD and query shape. Read the

    [standard endpoints](/guides/standard-endpoints) and

    [querying](/guides/querying) guides once and the rest of this reference
    follows

    the same rules. For what a delete actually removes, see

    [archiving and deleting](/guides/archiving-and-deleting).
servers:
  - url: https://{instance}/api/v2
    description: Your BuildingSwell instance
    variables:
      instance:
        default: app.buildingswell.com
        description: Your BuildingSwell host
security:
  - ApiKeyAuth: []
tags:
  - name: Projects
    description: Customer jobs, and the archive behavior they share with most resources.
  - name: Stages
    description: Reusable shop stations, scoped to a department.
  - name: Deliverables
    description: >-
      The work tree: orders, routes, phases, components, stages, steps, and QC
      steps.
  - name: Work sessions
    description: Time logged by one person against one deliverable.
  - name: Dependencies
    description: Scheduling links between deliverables.
  - name: Documents
    description: Files attached to orders.
  - name: QC
    description: QC templates and the inspection sets filled from them.
  - name: People (Workers)
    description: Your workforce roster. Called People in the app and `worker` in the API.
  - name: Timesheets
    description: Read-only view over attendance and work sessions.
  - name: Codes
    description: Cost, union, and per diem code lists. Referenced by value, not by id.
  - name: Roles
    description: Permission roles, and the statements that make them up.
  - name: Users
    description: >-
      People with a BuildingSwell login. Called Users in the app and
      `organization-member` in the API.
  - name: Concepts
    description: Deliverable writes with the nesting rules enforced.
  - name: Items
    description: Material and part definitions, purchasing units, and availability.
  - name: Item vendors
    description: Supplier SKUs linked to items.
  - name: Inventory stock
    description: Read-only quantities by item and location.
  - name: Inventory transactions
    description: The inventory ledger and its posting rules.
  - name: Inventory allocations
    description: Read-only reservations for orders and projects.
  - name: BOM lines
    description: Planned material inputs for routes, orders, and projects.
  - name: Production outputs
    description: Declarations of manufactured outputs.
  - name: Units of measure
    description: Reusable names and abbreviations for quantities.
  - name: Vendors
    description: Suppliers, manufacturers, and subcontractors.
  - name: Locations
    description: Department and project locations for storage and delivery.
  - name: Deliveries
    description: Inbound receipts, outbound trips, and transfers.
  - name: Delivery lines
    description: Material and ad-hoc manifest lines.
  - name: Trucks
    description: Fleet vehicles and their capacity.
  - name: Contacts
    description: Drivers, receivers, and other business contacts.
  - name: Project contacts
    description: Links between projects and contacts.
  - name: Teams
    description: Read-only department teams.
  - name: Shifts
    description: Read-only department shifts.
  - name: Departments (shops)
    description: Read-only departments, called shops in the API.
  - name: Custom properties
    description: Organization property definitions and values on orders.
paths:
  /per-diem-code/{id}:
    delete:
      tags:
        - Codes
      summary: Delete a per diem code
      description: >-
        **Destructive.** Permanently removes the entry from the list. There is
        no archive flag on a code and this cannot be undone.


        Nothing else breaks, and nothing else changes either. Referenced by
        value from a person's per diem entries, which the v2 public API does not
        expose. Those are plain string values with no foreign key behind them,
        so every record that already carries this code keeps it — the value
        simply stops appearing in the list. To retire a code while keeping it
        valid on existing records, `PATCH` it with `{ "isActive": false }`
        instead.
      parameters:
        - $ref: '#/components/parameters/id'
      responses:
        '204':
          description: Deleted. The response has no body.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    id:
      name: id
      in: path
      required: true
      description: Record id.
      schema:
        type: string
        format: uuid
  responses:
    BadRequest:
      description: >-
        The request was malformed or failed validation. Check `error.details`
        for the fields at fault.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The `X-API-Key` header is missing or the key is invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: >-
        Your key lacks the permission for this call. `error.missingPermissions`
        lists what is needed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: No record with that id in your organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: >-
        Too many requests. Read `RateLimit-Reset` for when to retry. This
        response also carries a top-level `message` alongside `error`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: What went wrong, in plain language.
            code:
              type: string
              enum:
                - BAD_REQUEST
                - UNAUTHORIZED
                - FORBIDDEN
                - NOT_FOUND
                - CONFLICT
                - VALIDATION
                - UNIQUE_VIOLATION
                - FK_VIOLATION
                - RATE_LIMITED
                - INTERNAL
              description: >-
                Stable machine-readable code. Branch on this rather than on the
                message text.
            requestId:
              type: string
              description: Id for this request. Quote it when you contact support.
            details:
              type: array
              items:
                type: object
                description: One field-level problem.
                properties:
                  path:
                    type: string
                    description: Field that failed, for example `data.stageId`.
                  message:
                    type: string
                    description: Why it failed.
                  code:
                    type: string
                    description: Validation code.
              description: Per-field problems. Present on validation failures only.
            missingPermissions:
              type: array
              items:
                type: string
                description: Permission name.
              description: Permissions your key is missing. Present on `403` only.
        context:
          type: object
          description: Extra context for the error. Usually empty.
          additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Organization-scoped API key. Create one in the BuildingSwell app under
        Organization settings, API keys.

````