# Códigos de error: Cartera: grupos, leads y contactos

> Grupos, leads, contactos, datos fiscales y vínculo con Zauru.

**Cómo se detecta (toda la familia):** La respuesta (`code`).

**Qué hacer (toda la familia):** El mensaje dice qué dato falta o qué no se puede cambiar.

Lo que un código no dice lo hereda de la familia.

## `CONTACT_INACTIVE`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** Se intentó editar un contacto inactivo. Borrar un contacto no lo elimina: lo inactiva, y un contacto inactivo no se edita.
- **Causa típica:** El contacto se inactivó (`contacts.deactivated_at` no es NULL) y alguien tenía su ficha abierta, o un enlace viejo lo editó.
- **Cómo detectarlo:** La respuesta (`code`, con `contact_id`). En la base: `contacts.deactivated_at` / `deactivated_by`.
- **Qué hacer:** Para volver a usarlo, créalo de nuevo con su número o correo (también sirve el alta rápida de cliente): se reactiva ese mismo contacto, sin vendedor y con su historial, en el lead donde se crea. También se reactiva solo si el cliente escribe.

## `GROUP_ALREADY_HAS_SELLER`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** También sale si otra persona se lo está asignando en ese mismo instante.
- **Causa típica:** La ficha se abrió cuando el grupo no tenía vendedor y alguien más lo tomó (o lo asignó un admin o un workflow) antes de pulsar "Asignar"; o dos personas lo pulsaron a la vez y ganó la otra.
- **Cómo detectarlo:** La respuesta (`code`, con `group_id`). En la base: `group_assignments` y `lead_assignments` activas con `employee_id` del grupo.
- **Qué hacer:** Recargar la ficha: ya muestra quién lo atiende. Si hay que cambiar de vendedor, lo hace un admin o el vendedor con "Reasignar".

## `LEAD_CLIENT_FIELDS_LOCKED`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El NIT y el DPI no se pueden editar en un cliente sincronizado con Zauru.

## `lead_fiscal_data_required`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Para promover un lead a cliente de Zauru hacen falta nombre, NIT y dirección fiscal: un payee sin eso queda incompleto en Zauru.

## `LEAD_ZAURU_ID_PLATFORM_ONLY`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Solo plataforma puede establecer o cambiar el vínculo del lead con Zauru (zauru_id).

## `no_leads_in_group`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Este grupo no tiene leads o clientes visibles para la sesion actual.

## `SELF_ASSIGN_REQUIRES_EMPLOYEE`

- **Tipo:** HTTP · **HTTP:** 422 · **Estado:** vigente
- **Qué significa:** "Asignar" en la ficha de un grupo sin vendedor, pedido por un usuario que no es empleado de la entidad (422): una asignación de vendedor es de empleado.
- **Causa típica:** Un usuario de plataforma o una cuenta sin empleado vinculado en esa entidad abrió un grupo sin vendedor. La ficha no le ofrece "Asignar" (`can_self_assign: false`); llega por la API directa o con una pantalla vieja.
- **Cómo detectarlo:** La respuesta (`code`). En la base: el usuario no tiene `employee_id` en su suscripción de la entidad.
- **Qué hacer:** Vincular a la persona con su empleado en Configuraciones → Personas, o que la asigne quien sí es empleado (un admin con "Reasignar").

## `seller_goals_duplicate_cell`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Configuraciones > Dashboard > Metas: el guardado trae la misma celda (vendedor y categoría) dos veces. Es un error de la pantalla, no de la persona.

## `seller_goals_entity_required`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Metas: la sesión no tiene una entidad seleccionada.

## `seller_goals_invalid_amount`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Metas: una o más metas no son un monto válido (negativo, con coma decimal o con letras). `problems` trae cada una.

## `seller_goals_unknown_category`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Metas: se intentó guardar una meta para una categoría que no existe en Zauru para la entidad. `item_category_ids` dice cuáles.

## `seller_goals_unknown_seller`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Metas: se intentó guardar una meta para un vendedor que no existe en Zauru para la entidad. `seller_zauru_ids` dice cuáles.

## `seller_goals_zauru_unavailable`

- **Tipo:** HTTP · **HTTP:** 503 · **Estado:** vigente
- **Qué significa:** Metas: Zauru no respondió al leer las categorías y los vendedores de la entidad. Sin sus nombres la pantalla y el importador no muestran metas.
- **Qué hacer:** Reintentar en un momento; si persiste, revisar la sesión de Zauru de la persona.
