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

# Update a Draft

> Update a draft letter's content, address, or recipient.

# Update a Draft

Update a letter that is in `draft` status. You can modify the recipient, address, content, or any combination. Letters that have already been sent cannot be updated.

## Path parameters

<ParamField path="letterId" type="string" required>
  The unique letter ID.
</ParamField>

## Request

All fields are optional — only include the fields you want to change.

<ParamField body="recipient" type="string" optional>
  Name of the recipient. Maximum 30 characters.
</ParamField>

<ParamField body="address" type="object" optional>
  The recipient's postal address. If provided, all required address fields must be included.

  <Expandable title="address properties">
    <ParamField body="street" type="string" required>
      Street name.
    </ParamField>

    <ParamField body="number" type="string" required>
      House/building number.
    </ParamField>

    <ParamField body="suffix" type="string" optional>
      Address suffix or addition.
    </ParamField>

    <ParamField body="postalcode" type="string" required>
      Postal or ZIP code.
    </ParamField>

    <ParamField body="city" type="string" required>
      City name.
    </ParamField>

    <ParamField body="country" type="string" required>
      ISO 3166-1 alpha-2 country code.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="content" type="string" optional>
  The letter body text.
</ParamField>

## Response

Returns the full updated letter object (same shape as [Get a Letter](/api-reference/get-letter)).

## Examples

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH https://thepostalcompany.com/api/v1/letters/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
    -H "Authorization: Bearer tpc_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "content": "Dear Jane,\n\nUpdated letter content.\n\nBest regards"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 — Success theme={null}
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "draft",
    "recipient": "Jane Doe",
    "address": {
      "street": "Keizersgracht",
      "number": "123",
      "postalcode": "1015 CJ",
      "city": "Amsterdam",
      "country": "NL"
    },
    "content": "Dear Jane,\n\nUpdated letter content.\n\nBest regards",
    "created_at": "2026-04-14T10:00:00.000Z",
    "updated_at": "2026-04-14T10:01:00.000Z"
  }
  ```

  ```json 409 — Not a draft theme={null}
  {
    "error": "Only draft letters can be updated"
  }
  ```

  ```json 404 — Not found theme={null}
  {
    "error": "Letter not found"
  }
  ```
</ResponseExample>

## Error codes

| Status | Description                                         |
| ------ | --------------------------------------------------- |
| `400`  | Invalid request body                                |
| `401`  | Missing, invalid, or revoked API key                |
| `404`  | Letter not found or does not belong to your account |
| `409`  | Letter is not in `draft` status                     |
