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

# Tipos de cuenta

> Registra tipos de cuenta para aplicar una clasificación por Ledger, validar el campo type al crear una cuenta y alinear el comportamiento de las cuentas con tus reglas contables.

Los tipos de cuenta clasifican las cuentas de tu ledger. Cada [**tipo de cuenta**](/es/reference/products/midaz/v2/create-account-type) tiene un nombre, una descripción y un valor de clave único.

Registras los tipos de cuenta que coinciden con tu estructura contable. Cuando habilitas la validación de tipo de cuenta, el ledger verifica el campo `type` de cada nueva cuenta no externa contra estos tipos registrados.

## Cómo funciona la validación de tipo de cuenta

### Habilitar la validación de tipo de cuenta

Habilitas la validación de tipo de cuenta por ledger mediante la [API de configuración del Ledger](/es/products/midaz/ledgers#ledger-settings). Envía una solicitud `PATCH` al endpoint de configuración del Ledger:

<CodeGroup>
  ```json PATCH /v1/organizations/{org_id}/ledgers/{ledger_id}/settings theme={null}
  {
    "accounting": {
      "validateAccountType": true
    }
  }
  ```
</CodeGroup>

<Tip>
  Los cambios de configuración tienen efecto de inmediato y no requieren un nuevo despliegue. Puedes actualizarlos en cualquier momento mediante la API.
</Tip>

### Comportamiento del campo `type` en la API de Cuentas

Cuando creas una cuenta, el comportamiento del campo `type` depende de la configuración de validación:

* **Validación deshabilitada (predeterminado):** debes proporcionar un `type`. Acepta cualquier valor de cadena de hasta 256 caracteres. El ledger no lo compara con los tipos de cuenta registrados.
* **Validación habilitada:** el campo `type` debe coincidir con el `keyValue` de un tipo de cuenta registrado. Midaz guarda los nuevos valores de `keyValue` en minúsculas y compara el valor sin distinguir mayúsculas de minúsculas. Usa valores en minúsculas en las solicitudes y en la configuración. Si no coincide, el ledger rechaza la cuenta con un error de validación. Las cuentas externas omiten esta verificación.

<Tip>
  Antes de habilitar la validación de tipo de cuenta, revisa tus cuentas existentes. El campo `type` de una cuenta existente no puede cambiarse, así que crea un tipo de cuenta registrado que coincida o vuelve a crear la cuenta cuyo `type` debe cambiar.
</Tip>

### El campo `keyValue`

<Note>
  El campo `keyValue` identifica un tipo de cuenta. Tiene estas restricciones:

  * **Inmutable:** defines `keyValue` cuando creas el tipo de cuenta. No puedes cambiarlo después. El endpoint de actualización de tipo de cuenta no acepta este campo.
  * **Único por ledger:** cada `keyValue` debe ser único dentro de un ledger.
  * **Se usa para la validación:** cuando habilitas `validateAccountType` en la configuración del Ledger, el ledger compara el campo `type` de cada cuenta no externa con un `keyValue` registrado, sin distinguir mayúsculas de minúsculas. El ledger rechaza cualquier cuenta no externa con un `type` no registrado.
</Note>

## Administrar los tipos de cuenta

***

Administras los tipos de cuenta mediante la API o la Lerian Console.

* [Crear un tipo de cuenta](/es/reference/products/midaz/v2/create-account-type): registra un nuevo tipo de cuenta para tu Ledger.
* [Listar los tipos de cuenta](/es/reference/products/midaz/v2/list-account-types): obtén todos los tipos de cuenta configurados en tu Ledger.
* [Obtener un tipo de cuenta](/es/reference/products/midaz/v2/get-account-type-by-id): obtén información detallada sobre un tipo de cuenta específico.
* [Actualizar un tipo de cuenta](/es/reference/products/midaz/v2/update-account-type): modifica la definición de un tipo de cuenta existente.
* [Eliminar un tipo de cuenta](/es/reference/products/midaz/v2/delete-account-type): elimina un tipo de cuenta que ya no está en uso.

<Note>
  **Consulta también**

  * [Enrutamiento de transacciones](/es/products/midaz/transaction-routing-entities): las rutas de operación usan `ruleType: account_type` para validar el `type` de una cuenta contra los valores `account.validIf` configurados en la ruta.
  * [Asientos contables](/es/products/midaz/accounting-entries): cómo Midaz resuelve las rúbricas de débito y crédito para las cuentas que estos tipos clasifican.
</Note>
