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

# Atualizar usuário

> Atualiza os dados de um usuário no sistema.

**Campos obrigatórios:**
- `name` - Nome do usuário
- `address` - Endereço completo

**Campos opcionais:**
- `avatar` - Foto do usuário (arquivo)
- `phones` - Lista de telefones
- `about` - Sobre o usuário
- `website` - Website
- `recovery_email` - Email de recuperação
- `nickname` - Apelido

**Campos condicionais por tipo:**
- **Pessoa Física**: `birth`, `is_emancipated`, `emancipated_document` (arquivo)
- **Empresa**: `company_type`, `social_name`

**Observações:**
- Formato: `multipart/form-data` (suporte a upload de arquivos)
- Para menores de 18 anos: `is_emancipated` e `emancipated_document` são obrigatórios
- CPF ou CNPJ são obrigatórios dependendo do tipo de usuário

**Estrutura dos Objetos:**

**Telefones (`phones`):**
- `ddi`: Código do país (padrão: "55" para Brasil)
- `ddd`: Código da área (ex: "11" para São Paulo)
- `type`: Tipo do telefone (ex: "whatsapp", "mobile", "landline", "work")
- `number`: Apenas números do telefone

**Endereço (`address`):**
- Todos os campos obrigatórios exceto `complement` e `is_default`
- `zip_code`: Formato brasileiro (00000-000)
- `state`: Sigla de 2 letras (ex: "SP", "RJ", "MG")
- `street_number`: Pode ser string (ex: "1811", "S/N")
- `is_default`: Define se é o endereço principal (padrão: false)




## OpenAPI

````yaml /api-reference/openapi.yaml post /users/update
openapi: 3.0.3
info:
  title: Nexus
  version: 1.0.2
  description: >
    API para integração entre Ticto e clientes externos


    # Autenticação


    Para autenticar as solicitações aos endpoints descritos a seguir, por favor,
    siga os passos abaixo:


    1. **Solicite** seu cadastro como cliente através do e-mail
    **infraestrutura@ticto.com.br** para obter seu `client_id` e `token`.

    2. **Use** seu token e ID de cliente para fazer login no Nexus e obter seu
    `client_token`.

    3. **Em todas as outras requisições**, envie seu `client_token` no header
    como `X-Api-Client-Token`.

    4. **Crie** seus usuários na rota de criação de usuário. Para cada usuário,
    será retornado um `public_token` único.

    5. **Para endpoints que não estão em public.php**, adicione o `public_token`
    do usuário no cabeçalho **Authorization** utilizando o formato:

       ```http
       Authorization: Bearer {public_token}
       ```

    ## Restrição de origem


    O acesso a esta API não está disponível para todos os sellers. Seu uso é
    estritamente permitido para parceiros comerciais que a utilizarão em
    cenários específicos. Por este motivo, o acesso será restrito a endereços IP
    e domínios previamente informados por esses parceiros. Essa medida visa
    proporcionar um ambiente mais controlado e seguro para todos os nossos
    usuários e parceiros.


    ### O que isso significa para os desenvolvedores?


    - **Acesso Limitado:**
      Somente os IPs e domínios pré-autorizados poderão realizar chamadas à API. Qualquer tentativa de acesso de um IP ou domínio não listado será automaticamente rejeitada.

    - **Processo de Autorização:**
      Para garantir a continuidade do acesso à API sem interrupções, é essencial que os desenvolvedores enviem os endereços IP ou domínios que necessitam de acesso diretamente à nossa equipe de suporte.

    - **Como Solicitar Acesso:**
      Envie um e-mail para **liberacao@ticto.com.br** com o assunto _"Solicitação de Acesso à API de pagamentos"_, incluindo:
      - Nome da empresa ou do desenvolvedor
      - Endereços IP ou domínios a serem autorizados
      - Justificativa para o acesso
      - Informações de contato para eventuais esclarecimentos

    ## Alterações e/ou inclusão de novos domínios e IPs


    Recomendamos que solicitações de adição ou alteração de IPs/domínios sejam
    feitas o mais breve possível para garantir uma transição suave. Em casos de
    alterações, os domínios e/ou IPs anteriores serão imediatamente bloqueados
    após sua remoção.


    ## Suporte e Dúvidas


    Para dúvidas ou suporte adicional, entre em contato conosco através do
    e-mail **liberacao@ticto.com.br**. Estamos comprometidos em auxiliar neste
    processo e garantir a melhor experiência possível.
servers:
  - url: https://nexus.ticto.com.br/api/v1
    description: Produção
security: []
tags:
  - name: Autenticação
  - name: Configurações do Cliente
  - name: Usuários
  - name: Onboarding de usuário
  - name: Contas Bancárias
  - name: Faixas de Taxa
    description: >-
      Endpoints para consulta de faixas de taxa personalizadas e histórico de
      alterações.
  - name: Frete
  - name: Financeiro
  - name: PIX Automático
    description: >-
      Consulta, cancelamento e nova tentativa de cobrança de assinaturas com PIX
      Automático (débito recorrente autorizado pelo pagador).
  - name: Produtos
  - name: Integrações
  - name: 'Webhooks: Usuários'
    description: Eventos relacionados a cadastro e atualização de usuários.
  - name: 'Webhooks: Contas Bancárias'
    description: Eventos relacionados a contas bancárias dos sellers.
  - name: 'Webhooks: Produtos e Ofertas'
    description: Eventos relacionados a produtos, ofertas, afiliados e coprodutores.
  - name: 'Webhooks: Financeiro'
    description: Eventos de reembolso, saque e antecipação.
  - name: 'Webhooks: Faixas de Taxa'
    description: Eventos de criação, atualização e exclusão de faixas de taxa.
  - name: 'Webhooks: Pedidos'
    description: Eventos de criação e atualização de pedidos.
  - name: 'Webhooks: Cobranças'
    description: >-
      Eventos de criação e mudança de status de cobranças (transações), na
      primeira compra e nas renovações.
  - name: 'Webhooks: Assinaturas'
    description: Eventos do ciclo de vida de assinaturas, cobranças e trial.
paths:
  /users/update:
    post:
      tags:
        - Usuários
      summary: Atualizar usuário
      description: >
        Atualiza os dados de um usuário no sistema.


        **Campos obrigatórios:**

        - `name` - Nome do usuário

        - `address` - Endereço completo


        **Campos opcionais:**

        - `avatar` - Foto do usuário (arquivo)

        - `phones` - Lista de telefones

        - `about` - Sobre o usuário

        - `website` - Website

        - `recovery_email` - Email de recuperação

        - `nickname` - Apelido


        **Campos condicionais por tipo:**

        - **Pessoa Física**: `birth`, `is_emancipated`, `emancipated_document`
        (arquivo)

        - **Empresa**: `company_type`, `social_name`


        **Observações:**

        - Formato: `multipart/form-data` (suporte a upload de arquivos)

        - Para menores de 18 anos: `is_emancipated` e `emancipated_document` são
        obrigatórios

        - CPF ou CNPJ são obrigatórios dependendo do tipo de usuário


        **Estrutura dos Objetos:**


        **Telefones (`phones`):**

        - `ddi`: Código do país (padrão: "55" para Brasil)

        - `ddd`: Código da área (ex: "11" para São Paulo)

        - `type`: Tipo do telefone (ex: "whatsapp", "mobile", "landline",
        "work")

        - `number`: Apenas números do telefone


        **Endereço (`address`):**

        - Todos os campos obrigatórios exceto `complement` e `is_default`

        - `zip_code`: Formato brasileiro (00000-000)

        - `state`: Sigla de 2 letras (ex: "SP", "RJ", "MG")

        - `street_number`: Pode ser string (ex: "1811", "S/N")

        - `is_default`: Define se é o endereço principal (padrão: false)
      operationId: updateUser
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RequestUserUpdate'
      responses:
        '200':
          description: Usuário atualizado com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseUserUpdate'
        '400':
          description: Requisição inválida
        '401':
          description: Não autorizado
        '422':
          description: Payload incorreto
        '500':
          description: Erro interno do servidor
      security:
        - ApiClientToken: []
        - bearerAuth: []
components:
  schemas:
    RequestUserUpdate:
      oneOf:
        - $ref: '#/components/schemas/RequestUserUpdatePerson'
        - $ref: '#/components/schemas/RequestUserUpdateCompany'
    ResponseUserUpdate:
      type: object
      required:
        - name
        - code
        - status
        - type
        - email
      properties:
        name:
          type: string
          description: Nome do usuário
        code:
          type: string
          description: Código único do usuário
        status:
          type: string
          description: Status do usuário
        is_approved:
          type: boolean
          description: Se o usuário foi aprovado
        is_registration_completed:
          type: boolean
          description: Se o registro foi completado
        type:
          type: string
          enum:
            - person
            - company
          description: Tipo do usuário
        email:
          type: string
          description: Email do usuário
        public_token:
          type: string
          nullable: true
          description: Token público para autenticação em endpoints protegidos
        avatar:
          type: string
          nullable: true
          description: URL da foto do usuário
        address:
          type: object
          description: Endereço completo do usuário
          required:
            - zip_code
            - city
            - state
            - country
            - street
            - street_number
            - neighborhood
          properties:
            zip_code:
              type: string
              maxLength: 10
              description: CEP no formato brasileiro
            city:
              type: string
              maxLength: 191
              description: Nome da cidade
            state:
              type: string
              maxLength: 2
              description: Sigla do estado
            country:
              type: string
              maxLength: 191
              description: Nome do país
            street:
              type: string
              maxLength: 191
              description: Nome da rua
            street_number:
              type: string
              maxLength: 191
              description: Número do endereço
            neighborhood:
              type: string
              maxLength: 191
              description: Nome do bairro
            complement:
              type: string
              maxLength: 191
              description: Complemento do endereço
            is_default:
              type: boolean
              description: Se é o endereço padrão do usuário
        phones:
          type: array
          description: Lista de telefones do usuário
          items:
            type: object
            properties:
              id:
                type: integer
                minimum: 1
                maximum: 999999999
                description: ID do telefone
              ddi:
                type: string
                maxLength: 5
                description: Código do país
              ddd:
                type: string
                maxLength: 2
                description: Código da área
              type:
                type: string
                maxLength: 191
                description: Tipo do telefone
              number:
                type: string
                description: Número do telefone
        about:
          type: string
          description: Sobre o usuário
        website:
          type: string
          format: url
          description: Website
        recovery_email:
          type: string
          format: email
          description: Email de recuperação
        nickname:
          type: string
          maxLength: 191
          description: Apelido
        birth:
          type: string
          format: date
          description: Data de nascimento (pessoa física)
        is_emancipated:
          type: boolean
          description: Se é emancipado (pessoa física menor de 18 anos)
        cpf:
          type: string
          pattern: ^\d{3}\.\d{3}\.\d{3}-\d{2}$
          maxLength: 191
          description: CPF (pessoa física)
        cnpj:
          type: string
          pattern: ^\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}$
          maxLength: 191
          description: CNPJ (empresa)
        company_type:
          type: string
          enum:
            - mei
            - simple
            - presumed
            - real
          description: Tipo de empresa
    RequestUserUpdatePerson:
      allOf:
        - $ref: '#/components/schemas/RequestUserUpdateBase'
        - type: object
          required:
            - birth
    RequestUserUpdateCompany:
      allOf:
        - $ref: '#/components/schemas/RequestUserUpdateBase'
        - type: object
          required:
            - company_type
            - social_name
          properties:
            social_name:
              type: string
              maxLength: 191
              description: Razão social da empresa
            company_partner:
              type: object
              description: >
                Dados do sócio representante da empresa.

                **Obrigatório** na primeira atualização de perfil.

                **Proibido** em atualizações subsequentes (após já ter sido
                definido).
              properties:
                name:
                  type: string
                  maxLength: 191
                  description: Nome completo do sócio
                cpf:
                  type: string
                  description: CPF do sócio
                birth:
                  type: string
                  format: date
                  description: Data de nascimento do sócio
    RequestUserUpdateBase:
      type: object
      required:
        - name
        - address
      properties:
        name:
          type: string
          minLength: 3
          maxLength: 191
          description: Nome do usuário
        avatar:
          type: string
          format: binary
          description: Foto do usuário (arquivo)
        address:
          type: object
          required:
            - zip_code
            - city
            - state
            - country
            - street
            - street_number
            - neighborhood
          description: Endereço completo do usuário
          properties:
            zip_code:
              type: string
              maxLength: 10
              description: CEP no formato brasileiro
              example: 01234-567
            city:
              type: string
              maxLength: 191
              description: Nome da cidade
              example: São Paulo
            state:
              type: string
              maxLength: 2
              description: Sigla do estado
              example: SP
            country:
              type: string
              maxLength: 191
              description: Nome do país
              example: Brasil
            street:
              type: string
              maxLength: 191
              description: Nome da rua
              example: Avenida Brigadeiro Faria Lima
            street_number:
              type: string
              maxLength: 191
              description: Número do endereço
              example: '1811'
            neighborhood:
              type: string
              maxLength: 191
              description: Nome do bairro
              example: Jardim Paulistano
            complement:
              type: string
              maxLength: 191
              description: Complemento do endereço
              example: Sala 1001
            is_default:
              type: boolean
              description: Se é o endereço padrão do usuário
          example:
            zip_code: 01234-567
            city: São Paulo
            state: SP
            country: Brasil
            street: Avenida Brigadeiro Faria Lima
            street_number: '1811'
            neighborhood: Jardim Paulistano
            complement: Sala 1001
            is_default: true
        phones:
          type: array
          description: Lista de telefones do usuário
          items:
            type: object
            required:
              - type
            properties:
              id:
                type: integer
                minimum: 1
                maximum: 999999999
                description: ID do telefone
              ddi:
                type: string
                maxLength: 5
                description: Código do país
              ddd:
                type: string
                maxLength: 2
                description: Código da área
              type:
                type: string
                maxLength: 191
                description: Tipo do telefone
              number:
                type: string
                pattern: ^\d{8,9}$
                description: Número do telefone (8 ou 9 dígitos, sem DDD)
            example:
              ddi: '55'
              ddd: '11'
              type: whatsapp
              number: '999999999'
        about:
          type: string
          description: Sobre o usuário
        website:
          type: string
          format: url
          description: Website
        recovery_email:
          type: string
          format: email
          description: Email de recuperação
        nickname:
          type: string
          maxLength: 191
          description: Apelido
        birth:
          type: string
          format: date
          description: Data de nascimento (pessoa física)
        is_emancipated:
          type: boolean
          description: Se é emancipado (pessoa física menor de 18 anos)
        emancipated_document:
          type: string
          format: binary
          description: Documento de emancipação (arquivo)
        cpf:
          type: string
          pattern: ^\d{3}\.\d{3}\.\d{3}-\d{2}$
          maxLength: 191
          description: CPF (pessoa física)
        company_type:
          type: string
          enum:
            - mei
            - simple
            - presumed
            - real
          description: Tipo de empresa
        cnpj:
          type: string
          pattern: ^\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}$
          maxLength: 191
          description: CNPJ (empresa)
  securitySchemes:
    ApiClientToken:
      type: apiKey
      in: header
      name: X-Api-Client-Token
      description: Token de autenticação do cliente obtido via endpoint /auth
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token de autenticação do usuário (public_token) obtido na criação do
        usuário

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.