COUNTCOUNT
Sign Up
CustomersAdd a customer address

Add a customer address

POST/partners/customers/{uuid}/addresses

Adds an address to a customer.

Every field is optional individually, but the body must carry at least one of `street`, `city`, or `zipCode` — an address with none of those is rejected. Setting `isPrimary` demotes the customer’s current primary address.

HMAC signature + Bearer access token
Try this request

Path parameters

uuiduuidrequired

The customer UUID.

Request body

streetstring

Street address. One of street, city, or zipCode is required.

street2string

Second address line (suite, unit, floor).

citystring

City or locality. One of street, city, or zipCode is required.

statestring

State, province, or region.

zipCodestring

Postal or ZIP code. One of street, city, or zipCode is required.

countrystring

Country name or ISO code.

namestring

Label for this location (for example "Head office"). Up to 255 characters.

isPrimaryboolean

Makes this the primary address, demoting the previous one. Defaults to false.

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, for customers with numbered locations.

Responses

201Address created.
400Address must include at least a street, city, or zip code.
404Customer 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
POSThttps://api.getcount.com/partners/customers/{uuid}/addresses
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 = 'POST';
const signingPath = '/customers/3fa85f64-5717-4562-b3fc-2c963f66afa6/addresses';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
  "name": "Head office",
  "street": "123 Main St",
  "street2": "Suite 400",
  "city": "San Francisco",
  "state": "CA",
  "zipCode": "94102",
  "country": "USA",
  "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`, {
  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 · 201
{
  "status": "success",
  "message": "success on adding address to customer",
  "data": {
    "address": {
      "id": "8f1d2c3b-4a59-4e6f-8b70-1c2d3e4f5a6b",
      "name": "Head office",
      "isPrimary": true,
      "address": {
        "id": "0b2c1f5e-7a9d-4f2b-9c1e-2a4b6d8e0f12",
        "street": "123 Main St",
        "street2": "Suite 400",
        "city": "San Francisco",
        "state": "CA",
        "zipCode": "94102",
        "country": "USA"
      },
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-01-28T14:22:30.000Z"
    }
  }
}