# Update an address

URL: /docs/api/storefront/customers/update-an-address

## PATCH /v1/account/addresses/{id}

```http
PATCH https://api.elaraone.app/api/v1/account/addresses/{id}
```

### Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `id` | path | integer | yes |  |
| `X-Client-IP` | header | string |  | Optional. IP address of the shopper (one IPv4/IPv6, no port, no list). Honoured only together with a valid X-Tenant-Secret; ignored otherwise. Used for rate limits and recorded with form submissions. |
| `X-Tenant-Secret` | header | string |  | Optional here. Server secret of the store: server-to-server only, never from a browser. Enables X-Client-IP. |

### Request body (`application/json`)

| Field | Type | Required | Description |
|---|---|---|---|
| `title` | string (nullable) |  |  |
| `label` | string (nullable) |  | An optional nickname, `meta.label` (AddressLabel); null or "" removes it. |
| `first_name` | string |  |  |
| `last_name` | string |  |  |
| `company_name` | string (nullable) |  |  |
| `line_one` | string |  |  |
| `line_two` | string (nullable) |  |  |
| `line_three` | string (nullable) |  |  |
| `city` | string |  |  |
| `state` | string (nullable) |  |  |
| `postcode` | string (nullable) |  |  |
| `country_id` | integer (nullable) |  |  |
| `delivery_instructions` | string (nullable) |  |  |
| `contact_email` | string (nullable) |  |  |
| `contact_phone` | string (nullable) |  |  |
| `shipping_default` | boolean |  |  |
| `billing_default` | boolean |  |  |

### Responses

- **200**: Success.
- **401**: Unauthenticated
- **402**: Payment required. Branch on `error.code`: - `TENANT_PAYMENT_REQUIRED`: this store is on payment hold. Show a "store temporarily unavailable" page; do not retry the request.
- **403**: Authorization error
- **422**: Validation error