---
title: "Update an address"
method: PUT
path: "/customers/{customer_id}/addresses/{address_id}"
tags: ["Customer Addresses"]
---

# Update an address

`PUT /customers/{customer_id}/addresses/{address_id}`

Updates an existing address for the specified customer.

**Validation Rules:**
- `country_code`: Required, must be a valid ISO 3166-1 alpha-2 code (e.g., US, NZ, AU)
- `state_code`: Required for US and CA, must be valid for the country
- `postcode`: Required, must be valid format for the country
- `type`: Required, must be either BILLING or SHIPPING
- `address_line_1`: Required, maximum 50 characters
- `city`: Required, maximum 28 characters
- `state`: Maximum 35 characters

🔒 Requires: `customers:write` scope

## Path parameters

- `customer_id` string, uuid, required
- `address_id` integer, required

## Request body

- CustomerAddressBase
  - `address_line_1` string, required — Primary address line (street address, P.O. box, etc.).
  - `address_line_2` string, nullable — Secondary address line (apartment, suite, unit, building, floor, etc.).
  - `city` string, required — City or town name.
  - `country_code` string, required — ISO 3166-1 alpha-2 country code (e.g., US, NZ, AU).
  - `postcode` string, required — Postal code or ZIP code.
  - `state` string, nullable — State, province, or region name.
  - `state_code` string, nullable — State or province code. Required for US and CA.
  - `suburb` string, nullable — Suburb or district.
  - `type` 'BILLING' | 'SHIPPING', required — The type of address.

## Response `200`

Address updated successfully

- CustomerAddressResponse
  - `data` CustomerAddress
    - `address_line_1` string, required — Primary address line (street address, P.O. box, etc.).
    - `address_line_2` string, nullable — Secondary address line (apartment, suite, unit, building, floor, etc.).
    - `city` string, required — City or town name.
    - `country_code` string, required — ISO 3166-1 alpha-2 country code (e.g., US, NZ, AU).
    - `country_name` string — Full country name derived from the country code.
    - `created_at` string, date-time, required — Creation timestamp in UTC.
    - `customer_id` string, uuid, required — The unique identifier of the customer this address belongs to.
    - `id` integer, required — Auto-generated address ID.
    - `postcode` string, required — Postal code or ZIP code.
    - `state` string, nullable — State, province, or region name.
    - `state_code` string, nullable — State or province code. Required for US and CA.
    - `suburb` string, nullable — Suburb or district.
    - `type` 'BILLING' | 'SHIPPING', required — The type of address.
    - `updated_at` string, date-time, required — Last update timestamp in UTC.

## Other responses

- `400` — Bad Request - validation errors
- `401` — Unauthorized
- `403` — Forbidden - insufficient permissions or address is read-only
- `404` — Customer or address not found

---

[API](https://skmtc.net/lightspeedhq/apis/api-2026-07.md) · [All operations](https://skmtc.net/lightspeedhq/apis/api-2026-07/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeedhq/api-2026-07/versions/72d4ceb46dbb/schema)
