COUNTCOUNT
Sign Up
CustomersUpdate a customer address

Update a customer address

PUT/partners/customers/{uuid}/addresses/{customerAddressUuid}

Updates one address on a customer.

A partial update — send only the fields you want to change, but send at least one. Unlike create, there is no street/city/zipCode requirement. Setting `isPrimary` demotes the current primary address.

HMAC signature + Bearer access token
Try this request

Path parameters

uuiduuidrequired

The customer UUID.

customerAddressUuiduuidrequired

The address UUID, as returned under `id` on an address row.

Request body

streetstring

Street address.

street2string

Second address line (suite, unit, floor).

citystring

City or locality.

statestring

State, province, or region.

zipCodestring

Postal or ZIP code.

countrystring

Country name or ISO code.

namestring

Label for this location. Up to 255 characters.

isPrimaryboolean

Makes this the primary address, demoting the previous one.

latitudenumber

Latitude of the location.

longitudenumber

Longitude of the location.

googleMapsUrlstring

Google Maps link for the location.

appleMapsUrlstring

Apple Maps link for the location.

storeNumberstring

Store or branch number.

Responses

200The updated address, returned under `updatedAddress`.
400Please provide data to update — the body carried no recognised fields.
404Customer or address not found.
401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot
403The credential does not have access to this workspace or resource. Troubleshoot
429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoot
PUThttps://api.getcount.com/partners/customers/{uuid}/addresses/{customerAddressUuid}
Request
import crypto from 'node:crypto';

const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;

const method = 'PUT';
const signingPath = '/customers/3fa85f64-5717-4562-b3fc-2c963f66afa6/addresses/3fa85f64-5717-4562-b3fc-2c963f66afa6';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
  "street2": "Suite 900",
  "isPrimary": true
};
const bodyString = JSON.stringify(body);

const bodyHash = crypto.createHash('sha256').update(bodyString).digest('hex');
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');

const response = await fetch(`${BASE_URL}/partners/customers/3fa85f64-5717-4562-b3fc-2c963f66afa6/addresses/3fa85f64-5717-4562-b3fc-2c963f66afa6`, {
  method,
  headers: {
    'x-client-id': CLIENT_ID,
    'x-timestamp': timestamp,
    'x-signature': signature,
    'Content-Type': 'application/json',
    Authorization: `Bearer ${ACCESS_TOKEN}`,
  },
  body: bodyString,
});

console.log(await response.json());
Response · 200
{
  "status": "success",
  "message": "success on updating customer address",
  "data": {
    "updatedAddress": {
      "id": "8f1d2c3b-4a59-4e6f-8b70-1c2d3e4f5a6b",
      "name": "Head office",
      "isPrimary": true,
      "address": {
        "id": "0b2c1f5e-7a9d-4f2b-9c1e-2a4b6d8e0f12",
        "street": "123 Main St",
        "street2": "Suite 900",
        "city": "San Francisco",
        "state": "CA",
        "zipCode": "94102",
        "country": "USA"
      },
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-01-28T14:22:30.000Z"
    }
  }
}