> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pazy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Company Configurations API

> Retrieve the organization configurable settings, their current values, and allowed options

## Authentication

All requests require an API key in the request headers.

**Headers:**

```
Authorization: Api-Key YOUR_API_KEY
```

This endpoint takes no query, path, or body parameters.

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET https://api.pazy.io/v1.0/company/configurations \
    -H "Authorization: Api-Key YOUR_API_KEY"
  ```

  ```javascript JavaScript (Fetch API) theme={null}
  const response = await fetch('https://api.pazy.io/v1.0/company/configurations', {
    method: 'GET',
    headers: {
      'Authorization': 'Api-Key YOUR_API_KEY'
    }
  });

  const result = await response.json();
  ```

  ```python Python (requests) theme={null}
  import requests

  url = "https://api.pazy.io/v1.0/company/configurations"
  headers = {
      "Authorization": "Api-Key YOUR_API_KEY"
  }

  response = requests.get(url, headers=headers)
  result = response.json()
  ```
</CodeGroup>

## Success Response

**HTTP Status:** `200 OK`

The response contains the full list of configurable settings available for the organization. Each entry describes a single setting along with its current value, input type, and (where applicable) the allowed options. Settings that are not relevant to the organization (for example, integration-specific settings when that integration is not connected) are omitted.

**Response Fields:**

| Field                                         | Type                              | Description                                                                                                                                            |
| --------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ok`                                          | boolean                           | Indicates whether the request was successful                                                                                                           |
| `data`                                        | object                            | Contains the configurations response data                                                                                                              |
| `data.configurations`                         | array                             | List of configuration settings                                                                                                                         |
| `data.configurations[].key`                   | string                            | Unique identifier of the setting. Use this as the `key` when updating via the [Update Company Configurations API](/apis/company-configurations-update) |
| `data.configurations[].label`                 | string                            | Human-readable name of the setting                                                                                                                     |
| `data.configurations[].value`                 | boolean, string, number, or array | Current value of the setting. The type depends on the setting `type`                                                                                   |
| `data.configurations[].type`                  | string                            | Input type of the setting. Possible values: `TOGGLE`, `SELECT`, `MULTISELECT`, `TEXT`, `NUMBER`                                                        |
| `data.configurations[].info`                  | object                            | Help text describing the setting                                                                                                                       |
| `data.configurations[].info.header`           | string                            | Summary line for the setting                                                                                                                           |
| `data.configurations[].info.points`           | array                             | Optional list of additional explanatory points                                                                                                         |
| `data.configurations[].options`               | array                             | Allowed options. Present for `SELECT` and `MULTISELECT` settings                                                                                       |
| `data.configurations[].options[].label`       | string                            | Display label for the option                                                                                                                           |
| `data.configurations[].options[].description` | string                            | Optional description of the option                                                                                                                     |
| `data.configurations[].options[].value`       | string                            | Value of the option (used when updating the setting)                                                                                                   |
| `data.configurations[].isEditable`            | boolean                           | Whether the setting can be updated. Settings with `false` are read-only                                                                                |
| `data.context`                                | object                            | Response metadata                                                                                                                                      |
| `data.context.count`                          | number                            | Total number of configuration settings returned                                                                                                        |
| `data.context.accountingPlatform`             | string or null                    | Name of the connected accounting platform (e.g., `TALLY`, `ZOHO`). `null` if no accounting integration is connected                                    |

### Setting Type Values

| Value         | `value` type | Description                     |
| ------------- | ------------ | ------------------------------- |
| `TOGGLE`      | boolean      | On / off switch                 |
| `SELECT`      | string       | Single choice from `options`    |
| `MULTISELECT` | array        | Multiple choices from `options` |
| `TEXT`        | string       | Free-text value                 |
| `NUMBER`      | number       | Numeric value                   |

<Note>
  The `value` returned here is the unwrapped value (e.g., `"value": true`). When updating a setting via the [Update Company Configurations API](/apis/company-configurations-update), the value must be wrapped in an object — `"value": { "value": true }`.
</Note>

### Response Example

```json theme={null}
{
  "ok": true,
  "data": {
    "configurations": [
      {
        "label": "Rounding Off",
        "key": "IS_ROUND_OFF_ENABLED",
        "value": false,
        "info": {
          "header": "Enable to round off the Net Payable Amount",
          "points": []
        },
        "type": "TOGGLE",
        "isEditable": true
      },
      {
        "label": "Line Item Parsing",
        "key": "LINE_ITEM_PARSING_MODE",
        "value": "MULTI",
        "info": {
          "header": "Choose How To Parse Invoice Entries.",
          "points": [
            "Multi Line Item for detailed, multi-line entries.",
            "Single Line Item for simple, one-line entries."
          ]
        },
        "type": "SELECT",
        "options": [
          {
            "label": "Multi Line Items",
            "description": "Each line item will be parsed from the invoice.",
            "value": "MULTI"
          },
          {
            "label": "Tax Based Line Items",
            "description": "Group line items by tax rates.",
            "value": "TAX_BASED"
          },
          {
            "label": "Single Line Item",
            "description": "Multi-line items will be grouped into a single line item.",
            "value": "SINGLE"
          }
        ],
        "isEditable": true
      }
    ],
    "context": {
      "count": 2,
      "accountingPlatform": "TALLY"
    }
  }
}
```

## Error Responses

### Access Denied

**HTTP Status:** `403 Forbidden`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "ACCESS_DENIED",
    "message": "Access denied: Resource can be viewed only by admins and bookkeepers"
  }
}
```

### Authentication Errors

**HTTP Status:** `401 Unauthorized`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "MISSING_CREDENTIALS",
    "message": "Missing Credentials"
  }
}
```

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid API Key"
  }
}
```

### Permission Errors

**HTTP Status:** `403 Forbidden`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "Permission check failed - PERMISSION_CHECK_FAILED"
  }
}
```

### Internal Error

**HTTP Status:** `500 Internal Server Error`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal error"
  }
}
```

## Best Practices

* Read the current configuration here first, then update settings with the [Update Company Configurations API](/apis/company-configurations-update) using the `key` values returned above
* Skip settings where `isEditable` is `false` — they cannot be updated
* For `SELECT` and `MULTISELECT` settings, only send values that appear in the setting's `options`
* Access is limited to users with organization read permission and an admin or bookkeeper role
