---
search:
  tags:
    - Settings
    - PUT
seo:
  description: >-
    Admin only. Patches organisation, receipt, tax, or server fields and returns
    the saved… Reference for the PUT /api/v1/settings endpoint in the PharmaFlow
    API.
sidebar:
  label: Update the organisation settings
  badge: PUT
title: Update the organisation settings
type: openapi-operation
---
Admin only. Patches organisation, receipt, tax, or server fields and returns the saved row. An empty body is a no-op, but a bad base currency or a server with no address is refused.

`PUT /api/v1/settings`

**Request body** (`application/json`, required)

- `name` (string)
- `legal_name` (string)
- `phone` (string)
- `email` (string)
- `address` (string)
- `tin` (string)
- `vat_number` (string)
- `nda_license_no` (string)
- `premise_no` (string)
- `receipt_header` (string)
- `receipt_footer` (string)
- `return_policy` (string)
- `show_vat_breakdown` (boolean)
- `show_pharmacist_on_receipt` (boolean)
- `default_low_stock_threshold` (integer)
- `expiry_warning_days` (string)
- `auto_print_receipt` (boolean)
- `default_copies` (integer)
- `tax_enabled` (boolean)
- `tax_rate` (number)
- `base_currency` (string)
- `rate_staleness_days` (integer)
- `server_mode` (string)
- `server_url` (string)

Request body example:

```json
{
  "name": "string",
  "legal_name": "string",
  "phone": "string",
  "email": "string",
  "address": "string",
  "tin": "string",
  "vat_number": "string",
  "nda_license_no": "string",
  "premise_no": "string",
  "receipt_header": "string",
  "receipt_footer": "string",
  "return_policy": "string",
  "show_vat_breakdown": true,
  "show_pharmacist_on_receipt": true,
  "default_low_stock_threshold": 0,
  "expiry_warning_days": "string",
  "auto_print_receipt": true,
  "default_copies": 1,
  "tax_enabled": true,
  "tax_rate": 0,
  "base_currency": "string",
  "rate_staleness_days": 1,
  "server_mode": "hosted",
  "server_url": "string"
}
```

**Responses**

- `200` — The settings as saved
- `400` — Invalid settings, unknown or inactive base currency, or a custom server without an address
- `401` — Not authenticated
- `403` — Caller is not an admin

Response example, 200:

```json
{
  "id": "string",
  "name": "string",
  "legal_name": "string",
  "logo_key": "string",
  "logo_url": "string",
  "phone": "string",
  "email": "string",
  "address": "string",
  "tin": "string",
  "vat_number": "string",
  "nda_license_no": "string",
  "premise_no": "string",
  "receipt_header": "string",
  "receipt_footer": "string",
  "return_policy": "string",
  "show_vat_breakdown": true,
  "show_pharmacist_on_receipt": true,
  "default_low_stock_threshold": -9007199254740991,
  "expiry_warning_days": "string",
  "auto_print_receipt": true,
  "default_copies": -9007199254740991,
  "tax_enabled": true,
  "tax_rate": 0,
  "base_currency": "string",
  "rate_staleness_days": -9007199254740991,
  "server_mode": "hosted",
  "server_url": "string",
  "updated_by": "string",
  "updated_at": "string"
}
```
