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

# Update an offer

> Update a draft employment offer.

Update recipient details, proposed terms, expiration, or metadata on a `draft`
offer. Sent, accepted, declined, expired, and voided offers cannot be edited.

Use an `Idempotency-Key` header when retrying update requests. See
[Idempotency](/reference/idempotency).

### Parameters

<ParamField body="id" type="string" required>
  The offer ID.
</ParamField>

<ParamField body="recipient" type="object">
  Recipient name or email.
</ParamField>

<ParamField body="terms" type="object">
  Proposed role, employment constraints, compensations, or benefits.
</ParamField>

<ParamField body="expires" type="string">
  Offer expiration timestamp.
</ParamField>

<ParamField body="metadata" type="object">
  Set of key-value pairs to attach to the offer.
</ParamField>

### Returns

Returns the updated [Offer object](/reference/offers/object).

<ResponseExample>
  ```json Request theme={null}
  {
    "recipient": {
      "name": "Jane Smith"
    },
    "terms": {
      "role": {
        "title": "Senior Software Engineer"
      }
    },
    "expires": "2026-06-27T23:59:59Z",
    "metadata": {
      "source": "headcount-plan"
    }
  }
  ```

  ```json Response theme={null}
  {
    "id": "ofr_8kY3pQmNvT2sW9xF",
    "object": "offer",
    "workspace": "ws_5kR2nLpXvH8dM3yT",
    "status": "draft",
    "recipient": {
      "name": "Jane Smith",
      "email": "jane@example.com"
    },
    "terms": {
      "role": {
        "title": "Senior Software Engineer",
        "responsibilities": "Build and maintain Plane's payroll platform."
      },
      "employment": {
        "starts": "2026-07-15",
        "types": ["employee"],
        "countries": ["US"]
      },
      "compensations": [
        {
          "label": "Base salary",
          "amount": "180000.00",
          "currency": "USD",
          "unit": "year",
          "frequency": "twice_monthly",
          "stock": "10000 stock options",
          "other": null
        }
      ],
      "benefits": []
    },
    "position": null,
    "job": null,
    "expires": "2026-06-27T23:59:59Z",
    "delivery": null,
    "decision": null,
    "document": null,
    "worker": null,
    "onboarding": null,
    "metadata": {
      "source": "headcount-plan"
    },
    "created": "2026-06-13T16:45:00Z",
    "updated": "2026-06-13T17:00:00Z"
  }
  ```
</ResponseExample>
