---
title: "Set the client's house-account policy (ITE-670): whether they may charge invoices to their account, and their payment terms. A dedicated endpoint — not fields on the general update — so the elevated settings permission gates exactly this flag, the policy lever that keeps deliberate AR rare."
method: PUT
path: "/Clients/{id}/house-account"
tags: ["Clients"]
---

# Set the client's house-account policy (ITE-670): whether they may charge invoices to their account, and their payment terms. A dedicated endpoint — not fields on the general update — so the elevated settings permission gates exactly this flag, the policy lever that keeps deliberate AR rare.

`PUT /Clients/{id}/house-account`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/Clients/{id}/house-account`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/Clients/:id/house-account/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` string, required

## Request body

- UpdateHouseAccountDto: House-account policy for a client (ITE-670). A dedicated endpoint/DTO rather than fields on UpdateClientDto so the settings-permission gate is explicit and the flag can't ride along on ordinary contact-info edits.
  - `allowHouseAccount` boolean
  - `paymentTermsDays` union: Terms in days (0 = due on receipt); null = use the tenant default.
    - integer
    - string, int32

## Response `200`

OK

- ClientResponseDto
  - `id` string
  - `email` string, nullable
  - `phoneNumber` string, nullable
  - `firstName` string
  - `lastName` string
  - `address` string, nullable
  - `addressLine2` string, nullable: Apartment / suite / unit. Second address line.
  - `city` string, nullable
  - `state` string, nullable
  - `zipCode` string, nullable
  - `countryCode` string, nullable: ISO 3166-1 alpha-2 country code (e.g. "US", "GB"). Defaults to clinic's region if null.
  - `dateOfBirth` string, date-time, nullable
  - `accountStatus` integer
  - `emergencyContact` EmergencyContactDto
    - `name` string, nullable
    - `phone` string, nullable
    - `email` string, nullable
    - `relationship` string, nullable
  - `secondaryEmergencyContact` SecondaryEmergencyContactDto: A client's secondary (backup) emergency contact — free-text, same shape as the primary one (PAW-650). Backed by the `SecondaryEmergencyContact*` columns on the client.
    - `name` string, nullable
    - `phone` string, nullable
    - `email` string, nullable
    - `relationship` string, nullable
  - `communicationPreferences` CommunicationPreferencesDto
    - `preferredMethod` integer
    - `allowAppointmentReminders` boolean
    - `allowEmailMarketing` boolean
    - `allowPhoneCalls` boolean
    - `allowSmsMarketing` boolean
    - `notes` string, nullable
  - `emailSuppressedAt` string, date-time, nullable: When email to this client stopped being sent because SES reported a spam complaint or a permanent bounce. Null = deliverable. Cleared by changing the email address.
  - `emailSuppressionReason` string, nullable: "Complaint" or "PermanentBounce"; null when not suppressed.
  - `preferredLanguage` string, nullable
  - `referralSource` string, nullable: Marketing attribution — "how did you hear about us". Staff/client entered.
  - `createdVia` string, nullable: Read-only provenance — the channel that created the record (ITE-419).
  - `registrationPending` boolean: Placeholder owner created by emergency intake whose details have not been completed.
  - `allowHouseAccount` boolean: House account (ITE-670): approved to charge invoices to their account. Changed only via PUT /clients/{id}/house-account (settings permission).
  - `paymentTermsDays` union: Payment terms in days (0 = due on receipt); null = tenant default.
    - integer
    - string, int32
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Changes

- **2026-10-28** `099cf36186e0`: 6 info
  - added the optional property `emailSuppressedAt` to the response with the `200` status (media type: text/plain)
  - added the optional property `emailSuppressedAt` to the response with the `200` status (media type: application/json)
  - added the optional property `emailSuppressedAt` to the response with the `200` status (media type: text/json)
  - added the optional property `emailSuppressionReason` to the response with the `200` status (media type: text/plain)
  - …2 more
- **2026-10-07** `021fabd866ff`: 3 info
  - added the optional property `registrationPending` to the response with the `200` status (media type: text/plain)
  - added the optional property `registrationPending` to the response with the `200` status (media type: application/json)
  - added the optional property `registrationPending` to the response with the `200` status (media type: text/json)
- **2026-09-17** `d4ae30be0619`: 3 info
  - added the optional property `addressLine2` to the response with the `200` status (media type: text/plain)
  - added the optional property `addressLine2` to the response with the `200` status (media type: application/json)
  - added the optional property `addressLine2` to the response with the `200` status (media type: text/json)
- **2026-09-11** `503cd0546309`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/Clients/:id/house-account/put.md)

---

[API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
