---
title: "Gross, fees, net and by service over a period"
method: GET
path: "/v1/business/earnings"
tags: ["Run"]
---

# Gross, fees, net and by service over a period

`GET /v1/business/earnings`

## Request

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

Earnings from visits in a period (default this week): gross, NogPets' card fee and Payfast's fee, net, received and still due, refunds, and by service, in the business's currency. 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
- `period` 'today' | 'this_week' | 'last_week' | 'next_7_days' | 'this_month' | 'last_month': A period in the business's own time zone; weeks run Monday to Sunday.
- `from` string: A local date, YYYY-MM-DD.
- `to` string: A local date, YYYY-MM-DD.

## Response `200`

OK

- BizEarnings
  - `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.
  - `from` string
  - `to` string
  - `currency` string
  - `bookings` integer
  - `gross` Money, required
    - `cents` integer: Minor units of the business's currency.
    - `text` string: Formatted, e.g. R650 or US$85.
  - `fees` object
    - `total` Money
      - `cents` integer: Minor units of the business's currency.
      - `text` string: Formatted, e.g. R650 or US$85.
    - `nogpetsCardFee` Money
      - `cents` integer: Minor units of the business's currency.
      - `text` string: Formatted, e.g. R650 or US$85.
    - `payfast` Money
      - `cents` integer: Minor units of the business's currency.
      - `text` string: Formatted, e.g. R650 or US$85.
  - `net` Money, required
    - `cents` integer: Minor units of the business's currency.
    - `text` string: Formatted, e.g. R650 or US$85.
  - `received` Money
    - `cents` integer: Minor units of the business's currency.
    - `text` string: Formatted, e.g. R650 or US$85.
  - `stillDue` Money
    - `cents` integer: Minor units of the business's currency.
    - `text` string: Formatted, e.g. R650 or US$85.
  - `refunds` object
    - `count` integer
    - `amount` Money
      - `cents` integer: Minor units of the business's currency.
      - `text` string: Formatted, e.g. R650 or US$85.
  - `byService` object[]
    - `serviceId` string
    - `name` string
    - `count` integer
    - `cents` integer
    - `amount` string
  - `commission` unknown
  - `notes` 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)
