---
title: "The weekly hours of the business or some vans and walkers"
method: POST
path: "/v1/business/hours"
tags: ["Run"]
---

# The weekly hours of the business or some vans and walkers

`POST /v1/business/hours`

## Request

- Base URL: `https://api.nogpets.com`
- URL: `https://api.nogpets.com/v1/business/hours`
- 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

Sets the working week (local time) for every van, walker and sitter, or those in resourceIds. Bookings outside the new hours stay booked and are listed. Needs confirm after the summary. 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).

## Request body

- BizHoursRequest
  - `bizId` string
  - `week` Week, required: Working hours per weekday, local time. Leave out days off.
    - `mon` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
    - `tue` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
    - `wed` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
    - `thu` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
    - `fri` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
    - `sat` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
    - `sun` object[]
      - `start` string, required: A local time of day, HH:MM.
      - `end` string, required: A local time of day, HH:MM.
  - `resourceIds` Id[]: Only these; left out, every van, walker and sitter.
  - `confirm` boolean: true only after the person saw the summary from the first call and said yes.

## Response `200`

OK

- BizHoursResult
  - `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.
  - `resourceIds` string[]
  - `week` object
  - `summary` string
  - `stillBooked` 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
  - `next` 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)
