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

# Actualizar una organización por ID

> Actualiza los campos enviados, incluido tax_id, por el ID de Revem. No se puede borrar tax_id. Las mismas reglas de atributos y omisión del POST aplican aquí. Los campos id, created_at y updated_at son de sólo lectura. Conflictos de identificador o escrituras concurrentes responden 409. No alcanza organizaciones eliminadas o del simulador.



## OpenAPI

````yaml /openapi.json patch /organizations/public/v1/{id}
openapi: 3.1.0
info:
  title: Revem API
  version: 1.0.0
  description: >-
    La API pública de Revem para integraciones de servidor a servidor:
    contactos, organizaciones, tickets y el canal de webchat. Se autentica con
    la API key de tu organización.
  contact:
    name: Soporte Revem
    email: soporte@revem.ai
    url: https://revem.ai
servers:
  - url: https://api.revem.ai
    description: Producción
security:
  - apiKey: []
tags:
  - name: Organizaciones
    description: >-
      Sincroniza empresas por identificador tributario, con atributos
      personalizados por nombre.
  - name: Contactos
    description: >-
      Sincroniza tu base de clientes con Revem. Los contactos se identifican por
      teléfono al crearlos y por id después.
  - name: Tickets
    description: Lee y actualiza los tickets de tu embudo desde tu sistema de gestión.
  - name: Webchat
    description: >-
      Conecta el chat de tu sitio con Revem: registra lo que escribe el
      visitante y lee las respuestas del equipo o del agente.
paths:
  /organizations/public/v1/{id}:
    patch:
      tags:
        - Organizaciones
      summary: Actualizar una organización por ID
      description: >-
        Actualiza los campos enviados, incluido tax_id, por el ID de Revem. No
        se puede borrar tax_id. Las mismas reglas de atributos y omisión del
        POST aplican aquí. Los campos id, created_at y updated_at son de sólo
        lectura. Conflictos de identificador o escrituras concurrentes responden
        409. No alcanza organizaciones eliminadas o del simulador.
      operationId: updateOrganization
      parameters:
        - name: id
          in: path
          required: true
          description: ID de la organización en Revem.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationUpdateBody'
            example:
              tax_id: 76.123.456-K
              name: Empresa Ejemplo SpA
      responses:
        '200':
          description: Solicitud completada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationUpdateResult'
        '400':
          description: Cuerpo o filtros inválidos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationsError'
        '401':
          description: Sin credencial, o la API key no existe o fue revocada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
              example:
                error: Unauthorized
                message: Invalid API key
        '403':
          description: Sin permiso para escribir.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationsError'
        '404':
          description: Organización no encontrada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationsError'
        '409':
          description: >-
            Identificador en conflicto, papelera, simulador o cambio
            concurrente; revisa el conflicto o reintenta.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationsError'
        '422':
          description: Atributo desconocido, ambiguo, inválido o campo de sólo lectura.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationsError'
        '429':
          description: >-
            La key superó su límite de solicitudes por minuto. El header
            `retry-after` indica cuánto esperar.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
              example:
                ok: false
                error: Too many requests. Retry in 1 minute.
          headers:
            retry-after:
              description: Segundos que esperar antes de reintentar.
              schema:
                type: integer
            x-ratelimit-limit:
              description: Solicitudes permitidas por minuto.
              schema:
                type: integer
            x-ratelimit-remaining:
              description: Solicitudes que quedan en la ventana actual.
              schema:
                type: integer
            x-ratelimit-reset:
              description: Segundos hasta que la ventana se reinicia.
              schema:
                type: integer
components:
  schemas:
    OrganizationUpdateBody:
      type: object
      properties:
        tax_id:
          type: string
          minLength: 1
          maxLength: 100
          description: >-
            Identificador tributario (RUT/RUC). Se eliminan signos y se
            convierte a mayúsculas; se conservan ceros iniciales. Debe contener
            letras o números. No se valida el dígito verificador chileno.
            Opcional: reemplaza el identificador actual; no puede vaciarse.
        name:
          type: string
          maxLength: 500
          description: Nombre de la organización. Omitido o vacío conserva el existente.
        website:
          type: string
          maxLength: 2000
          description: Sitio web. Omitido o vacío conserva el existente.
        address:
          type: string
          maxLength: 2000
          description: Dirección. Omitida o vacía conserva la existente.
        business_activity:
          type: string
          maxLength: 500
          description: Giro o actividad económica. Omitido o vacío conserva el existente.
      additionalProperties: true
      description: >-
        Todos los campos son opcionales. Una clave ausente conserva el valor
        guardado. Los atributos personalizados de organización se envían al
        mismo nivel, por nombre sin distinguir mayúsculas. Deben existir
        previamente; hasta 100 por solicitud. Los campos nativos no aceptan
        null. id, created_at y updated_at son de sólo lectura. Cuerpo máximo:
        128 KiB.
    OrganizationUpdateResult:
      type: object
      properties:
        ok:
          type: boolean
          const: true
        id:
          type: string
          format: uuid
          description: ID estable de la organización actualizada.
        warnings:
          type: array
          items:
            type: string
          description: Arreglo de avisos; actualmente vacío.
      required:
        - ok
        - id
        - warnings
      additionalProperties: false
      example:
        ok: true
        id: 3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90
        warnings: []
    OrganizationsError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: string
          description: Etiqueta del código HTTP; message explica el problema.
        message:
          type: string
          description: Explicación legible del problema.
        unknownAttributes:
          type: array
          items:
            type: string
          description: >-
            Nombres desconocidos o de sólo lectura rechazados con 422; corrige
            la solicitud antes de reintentar.
      required:
        - error
      additionalProperties: false
    AuthError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
          description: Presente sólo en el `403`.
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
    RateLimitError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: string
          description: Incluye cuánto esperar antes de reintentar.
      required:
        - ok
        - error
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        La API key de tu organización, con la forma `rvm_<prefijo>.<secreto>`,
        enviada como `Authorization: Bearer rvm_…`. Revem la emite y sólo se
        muestra una vez; si la pierdes se reemplaza, no se recupera.

````