---
title: "Create Client"
method: POST
path: "/clients"
tags: ["Clients"]
---

# Create Client

`POST /clients`

Create a new client. Names are not deduplicated — posting the same name creates another client.

## Request body

- ClientRequestCreateRequest
  - `name` string, required
  - `projects` string[] — Project encoded IDs to assign to the client.
  - `lineItemMask` string — Template for generated invoice line-item names.
  - `defaultTax` object — Default tax for the client's invoices.
    - `id` integer — Tax ID from a connected accounting integration.
    - `rate` number — Tax rate as a percentage.
  - `defaultDiscount` number — Default discount rate as a percentage (0-100).
  - `paymentDueDays` integer — Default invoice payment term in days (0-365).
  - `reference` string
  - `invoicePublicNotes` string
  - `businessDetails` string
  - `billingDetails` ClientBillingDetails — Client billing details (all fields optional).
    - `companyName` string, nullable
    - `vatNumber` string, nullable
    - `addressLine1` string, nullable
    - `addressLine2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `postcode` string, nullable
    - `country` string, nullable — ISO 3166-1 alpha-2 country code.
    - `contactName` string, nullable
    - `contactPhone` string, nullable
    - `contactEmail` string, nullable
    - `peppolEndpointId` string, nullable
    - `peppolEndpointScheme` string, nullable
    - `peppolMeansCode` string, nullable
    - `bankAccountNumber` string, nullable
    - `bankAccountRoutingNumber` string, nullable
    - `bankAccountHolderName` string, nullable
  - `excludedLabels` string[] — Labels excluded from invoicing (max 8).
  - `email` string[] — Invoice recipient email addresses (max 10).

## Response `201`

Created

- Client
  - `id` number, required
  - `name` string, required
  - `projects` string[], required — List of projects ID
  - `businessDetails` string, nullable
  - `budget` ClientBudget
    - `type` 'money' | 'time' | 'costs', required — Budget Type
    - `budget` number, required — Budget value in cents (for money) or seconds (for time)
    - `period` 'general' | 'monthly' | 'weekly' | 'daily' | 'quarterly' | 'yearly', required — Budget periodicity (overall, monthly, weekly, daily)
    - `appliedFrom` string, nullable — Start budget from (available only for non-recurrent budgets)
    - `disallowOverbudget` boolean
    - `excludeUnbillableTime` boolean
    - `excludeExpenses` boolean
    - `threshold` number — Email admins when threshold reached. Threshold is percentage 1 - 100.
    - `progress` number — Current budget usage in cents (for money) or seconds (for time)

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/everhour/apis/everhour-api.md) · [All operations](https://skmtc.net/everhour/apis/everhour-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/everhour/everhour-api/revisions/fc6136e33352/schema)
