# Update Project Offering

Updates a Project Offering's name and billing model, if provided. The ability to modify a Project Offering is limited, once the parent Project status has been moved beyond Awaiting Start.

Endpoint: PATCH /v1/projects/{project_id}/offerings/{id}
Version: v1
Security: ApiKey

## Path parameters:

  - `id` (string, required)
    ID of the Project Offering.

  - `project_id` (string, required)
    The ID of the Project, to which this Project Offering belongs.

## Request fields (application/json-patch+json):

  - `name` (string)
    The new name for the Project Offering.

  - `billing_model` (string)
    The new Billing Model for the Project Offering. This cannot be updated for a project offering that is In Progress
    Enum: "fixed_bid", "time_materials", "retainer", "non_billable", "investment", "admin"

  - `billing_model_options` (object)
    Additional Billing Model configuration for the Project Offering.

  - `billing_model_options.billing_model` (string, required)
    The Billing Model of the Project Offering Configuration.  This needs to match the Billing Model in the parent request body.
    Enum: "fixed_bid", "time_materials", "retainer", "non_billable", "investment", "admin"

  - `tags` (array)
    A list of tags assigned to the Project Offering for filtering, categorization, or reporting.

  - `service_offering_id` (string)
    The ID of a Service Offering to link to the Project Offering, replacing any previously linked Service Offering. Set to null to remove the link. Existing roles and plans are not affected.

## Response 400 fields (application/json):

  - `type` (string)
    RFC reference for the error type

  - `title` (string)
    Human-readable summary of the error

  - `status` (integer)
    HTTP status code

  - `errors` (array)
    Detailed error messages for each validation failure

  - `trace_id` (string)
    Trace identifier for debugging

