---
title: "Record an audited monetary decision (QA test companies only)"
method: PATCH
path: "/companies/{companyId}/gl-accounts/{id}/monetary-classification"
tags: ["GL Accounts"]
---

# Record an audited monetary decision (QA test companies only)

`PATCH /companies/{companyId}/gl-accounts/{id}/monetary-classification`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/gl-accounts/{id}/monetary-classification`
- Auth: HTTP bearer

Requires an allowlisted test company, the QA application marker, and company role admin or owner. Unknown foreign-balance accounts block revaluation until this explicit decision exists.

## Request body

- object
  - `isMonetary` boolean, required

## Response `200`

Classification recorded with actor and timestamp

- GlAccountResponse
  - `success` boolean
  - `data` GlAccount
    - `id` string, uuid
    - `companyId` string, uuid
    - `code` string
    - `name` string
    - `type` 'Asset' | 'Liability' | 'Equity' | 'Revenue' | 'Expense'
    - `subtype` string, nullable
    - `parentAccountId` string, uuid, nullable
    - `normalBalance` 'debit' | 'credit'
    - `detailTypeKey` string: Canonical COA detail type used for report grouping.
    - `detailTypeLabel` string
    - `detailTypeDescription` string
    - `reportSectionKey` string
    - `reportSectionLabel` string
    - `accountExplanation` CoaAccountExplanation: Read-only COA account context returned only when the customer company is allowlisted by CUSTOMER_APP_INTELLIGENCE_HOME_COMPANY_IDS.
      - `accountType` CoaAccountExplanationPart
        - `key` string
        - `label` string
        - `description` string
      - `detailType` CoaAccountExplanationPart
        - `key` string
        - `label` string
        - `description` string
      - `reportSection` CoaAccountExplanationPart
        - `key` string
        - `label` string
        - `description` string
      - `classification` CoaAccountExplanationPart
        - `key` string
        - `label` string
        - `description` string
    - `cashFlowSection` 'operating' | 'investing' | 'financing' | 'cash' | 'non_cash' | 'null', nullable
    - `taxFormSectionKey` string, nullable
    - `description` string, nullable
    - `source` 'system' | 'template' | 'integration' | 'migration' | 'manual' | 'repair'
    - `isSystem` boolean
    - `isLocked` boolean: Locked accounts cannot be selected for new direct posting.
    - `isPostable` boolean: False for parent, locked, inactive, or otherwise non-postable accounts.
    - `isParent` boolean: True when at least one active child account references this account.
    - `isActive` boolean
    - `isMonetary` boolean, nullable: Null is fail-closed and blocks foreign-balance revaluation.
    - `monetaryClassificationSource` 'account_type_subtype' | 'manual' | 'null', nullable
    - `monetaryClassifiedAt` string, date-time, nullable
    - `monetaryClassifiedByUserId` string, uuid, nullable
    - `deactivatedAt` string, date-time, nullable
    - `deactivatedByUserId` string, uuid, nullable
    - `deactivationReason` string, nullable
    - `expectedNormalBalance` 'debit' | 'credit'
    - `healthFindings` object[]
      - `code` string
      - `severity` 'critical' | 'high' | 'medium' | 'low'
      - `message` string
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `403`: Insufficient permissions or not a company member
- `404`: Hidden outside QA, or account not found
- `422`: Only Asset and Liability accounts may be manually classified

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
