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

# Atualizar flow

> Altere nome, categorias ou o flow_json

## Conceituação

Atualiza um flow existente. Todos os campos são opcionais — apenas os enviados são alterados.

<Warning>
  Um flow `PUBLISHED` **não aceita** alteração do `flow_json`. Para mudar as telas de um flow já publicado, crie um novo e descontinue o antigo com [Descontinuar flow](/flows/deprecate-flow).
</Warning>


## OpenAPI

````yaml pt/flows/openapi.json PUT /whatsapp/businesses/{wabaId}/flows/{flowId}
openapi: 3.1.0
info:
  title: Omni Z-API - Flows do WhatsApp
  description: >-
    API para criar e gerenciar WhatsApp Flows (formulários nativos dentro da
    conversa)
  version: 1.0.0
servers:
  - url: https://api.omni.z-api.io
security:
  - bearerAuth: []
paths:
  /whatsapp/businesses/{wabaId}/flows/{flowId}:
    put:
      tags:
        - Flows
      summary: Atualizar flow
      description: >-
        Atualiza um flow existente. Todos os campos são opcionais — apenas os
        enviados são alterados. Um flow `PUBLISHED` não aceita alteração do
        `flow_json`.
      operationId: updateFlow
      parameters:
        - name: wabaId
          in: path
          required: true
          description: ID do WABA (obtido via Listar WABAs)
          schema:
            type: string
            example: '428083093730937'
        - name: flowId
          in: path
          required: true
          description: ID do flow (obtido via Listar flows)
          schema:
            type: string
            example: '1122334455667788'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFlowRequest'
            example:
              name: agendamento_consulta_v2
      responses:
        '200':
          description: Flow atualizado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Flow'
              example:
                id: '1122334455667788'
                name: agendamento_consulta
                categories:
                  - APPOINTMENT_BOOKING
                status: PUBLISHED
                endpoint_uri: null
                validation_errors: []
        '400':
          description: >-
            Requisição inválida — `flow_json` malformado ou categoria
            inexistente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Token inválido ou ausente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Flow não encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: >-
            Regra de negócio violada — flow publicado não aceita alteração do
            `flow_json`, ou remoção de flow fora de `DRAFT`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    UpdateFlowRequest:
      type: object
      properties:
        name:
          type: string
          description: Nome do flow
        categories:
          type: array
          description: Categorias do flow (a Meta usa na revisão)
          items:
            type: string
            enum:
              - SIGN_UP
              - SIGN_IN
              - APPOINTMENT_BOOKING
              - LEAD_GENERATION
              - CONTACT_US
              - CUSTOMER_SUPPORT
              - SURVEY
              - OTHER
        flow_json:
          type: string
          description: Definição das telas em JSON, enviada como **string**
        endpoint_uri:
          type: string
          description: >-
            URL do seu endpoint, obrigatória apenas para flows com
            `data_exchange`
    Flow:
      type: object
      properties:
        id:
          type: string
          description: ID do flow
        name:
          type: string
          description: Nome do flow
        categories:
          type: array
          description: Categorias do flow (a Meta usa na revisão)
          items:
            type: string
            enum:
              - SIGN_UP
              - SIGN_IN
              - APPOINTMENT_BOOKING
              - LEAD_GENERATION
              - CONTACT_US
              - CUSTOMER_SUPPORT
              - SURVEY
              - OTHER
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - DEPRECATED
            - BLOCKED
            - THROTTLED
          description: Status de publicação
        endpoint_uri:
          type: string
          nullable: true
          description: >-
            URL do seu endpoint, obrigatória apenas para flows com
            `data_exchange`
        flow_json:
          type: string
          description: Definição das telas em JSON, enviada como **string**
        validation_errors:
          type: array
          description: Pendências de validação devolvidas pela Meta
          items:
            type: object
            properties:
              key:
                type: string
                description: Chave da pendência
              value:
                type: string
                description: Detalhe da pendência
    Error:
      type: object
      properties:
        error:
          type: integer
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````