---
title: "A client: pets, addresses, notes, bookings"
method: GET
path: "/v1/business/clients/{clientId}"
tags: ["Run"]
---

# A client: pets, addresses, notes, bookings

`GET /v1/business/clients/{clientId}`

## Request

- Base URL: `https://api.nogpets.com`
- URL: `https://api.nogpets.com/v1/business/clients/{clientId}`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://api.nogpets.com/oauth/authorize`, token URL `https://api.nogpets.com/oauth/token`, scopes: `business:manage`)
  - HTTP bearer

One client of the business: contact, pets (petKey, usual services), addresses (addressKey), the business's notes, how they agreed to be booked, upcoming and past bookings. Needs business:manage; the signed-in person must be an owner, manager or staff member of an approved NogPets business (bizId only if they run more than one).

## Query parameters

- `bizId` string

## Response `200`

OK

- BizClient
  - `business` BizRef
    - `bizId` string
    - `name` string
    - `role` string: owner, manager or crew (staff).
    - `country` string
    - `countryName` string
    - `currency` string
    - `timezone` string
    - `canTakeBookings` boolean: False outside South Africa for now: bookings there aren't taken through NogPets.
  - `client` BizClientBrief, required
    - `id` string: clientId
    - `name` string
    - `phone` string
    - `email` string
    - `hasAccount` boolean: They use the NogPets app or WhatsApp: NogPets tells them about changes.
    - `visits` integer
    - `lastVisit` string, nullable
    - `nextVisit` string, nullable
    - `pets` object[]
      - `key` string: petKey
      - `name` string
      - `type` string
      - `weightKg` number
      - `coat` string
      - `usual` string
      - `serviceIds` string[]
    - `addresses` object[]
      - `key` string: addressKey
      - `label` string
      - `line1` string
      - `suburb` string
      - `postalCode` string
      - `notes` string
    - `notes` object[]
      - `text` string
      - `at` string
      - `by` string
    - `consent` object, nullable
      - `note` string
      - `at` string
    - `spent` string
  - `upcoming` BizBooking[]
    - `id` string
    - `when` string: Local day and time.
    - `start` string, date-time
    - `end` string, date-time
    - `status` 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'CANCELLED' | 'COMPLETED'
    - `category` string
    - `resourceId` string
    - `resource` string
    - `client` object
      - `id` string: clientId for get_client.
      - `name` string
      - `phone` string
    - `what` string: Pets and services.
    - `address` string
    - `mapUrl` string, nullable: The address on Google Maps.
    - `notes` string
    - `paymentMethod` string
    - `paymentStatus` 'PENDING' | 'PAID' | 'CASH_DUE' | 'CASH_RECEIVED' | 'REFUND_REQUESTED' | 'REFUNDED' | 'FAILED'
    - `total` string
    - `totalCents` integer
    - `unpaid` boolean
    - `source` string
  - `past` BizBooking[]
    - `id` string
    - `when` string: Local day and time.
    - `start` string, date-time
    - `end` string, date-time
    - `status` 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'CANCELLED' | 'COMPLETED'
    - `category` string
    - `resourceId` string
    - `resource` string
    - `client` object
      - `id` string: clientId for get_client.
      - `name` string
      - `phone` string
    - `what` string: Pets and services.
    - `address` string
    - `mapUrl` string, nullable: The address on Google Maps.
    - `notes` string
    - `paymentMethod` string
    - `paymentStatus` 'PENDING' | 'PAID' | 'CASH_DUE' | 'CASH_RECEIVED' | 'REFUND_REQUESTED' | 'REFUNDED' | 'FAILED'
    - `total` string
    - `totalCents` integer
    - `unpaid` boolean
    - `source` string

## Other responses

- `400`: The input is wrong (`INVALID_ARGUMENT`, or a pricing code such as `ONE_PRIMARY`, `PET_TYPE`, `UNKNOWN_SERVICE`).
- `401`: No token, or it's expired or revoked. The `WWW-Authenticate` header points at the resource metadata.
- `403`: The token lacks a scope (`INSUFFICIENT_SCOPE`, with `details.scope`).
- `404`: Not found, or not the person's.
- `409`: A rule said no: `NO_COVERAGE`, `NO_AVAILABILITY`, `SLOT_TAKEN`, `TOO_LATE`, `CONFIRM_REQUIRED` (with `details.summary`), `NOTHING_TO_PAY`, `SHOP_OFF`, `STOCK`, `SHIPPING`, `DISCOUNT`, `CASH`, `FAILED_PRECONDITION`; business sign-up: `UNDER_REVIEW`, `APPROVED`, `NOT_READY`, `TOO_MANY`, `LISTING_TAKEN`, `PAYFAST_ZA_ONLY`. `NO_COVERAGE` carries `details.leadId`, `details.message` (tell the person) and `details.next`.

---

[API](https://skmtc.dev/nogpets/apis/nogpets-api.md) · [All operations](https://skmtc.dev/nogpets/apis/nogpets-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nogpets/apis/nogpets-api/revisions/a202c1012173?raw)
