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

# Atualizar produto

> Atualiza um produto existente.

Apenas os campos enviados serão atualizados. Campos não enviados mantêm seus valores atuais.




## OpenAPI

````yaml /api-reference/openapi.yml patch /api/v1/products/{id}
openapi: 3.1.0
info:
  title: API - Simplo
  version: 1.0.0
  description: API para cobrança e assinaturas para contas Simplo
  contact:
    name: Simplo
    url: https://besimplo.com
    email: team@besimplo.com
servers:
  - url: https://besimplo.com
    description: Produção
security:
  - apiKeyAuth: []
tags:
  - name: Clientes
    description: Clientes são as pessoas que pagarão pelos produtos da sua conta
  - name: Produtos
    description: Produtos representam os bens ou serviços que você vende
  - name: Preços
    description: Preços definem quanto cobrar e a frequência de cobrança de um Produto
  - name: Assinaturas
    description: Assinaturas conectam clientes aos seus planos para cobrança recorrente
  - name: Checkout
    description: >-
      Sessões de checkout permitem que clientes completem pagamentos e
      assinaturas através de uma interface web
  - name: Faturas
    description: Faturas representam cobranças geradas para clientes
  - name: Reembolsos
    description: Reembolsos permitem devolver pagamentos já realizados aos clientes
  - name: Webhooks
    description: >
      Eventos enviados via HTTP POST para a URL configurada na sua conta.
      Responda com status 2xx rapidamente. Processe o evento de forma
      assincrona. Use o campo `event.id` para garantir idempotencia.
paths:
  /api/v1/products/{id}:
    patch:
      tags:
        - Produtos
      summary: Atualizar produto
      description: >
        Atualiza um produto existente.


        Apenas os campos enviados serão atualizados. Campos não enviados mantêm
        seus valores atuais.
      operationId: updateProduct
      parameters:
        - name: id
          in: path
          required: true
          description: ID do produto, no formato TypeID com prefixo `prod_`.
          schema:
            type: string
            pattern: ^prod_[0-9a-z]{26}$
            example: prod_01h455vb4pex5vsknk084sn02q
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              unevaluatedProperties: false
              required:
                - product
              properties:
                product:
                  type: object
                  unevaluatedProperties: false
                  properties:
                    name:
                      type: string
                      description: Nome do produto.
                      minLength: 1
                      example: Plano Premium Atualizado
                    description:
                      type:
                        - string
                        - 'null'
                      nullable: true
                      description: Descrição do produto.
                      example: Nova descrição do produto
                    active:
                      type: boolean
                      description: Se o produto está ativo.
                      example: false
                    external_code:
                      type:
                        - string
                        - 'null'
                      nullable: true
                      description: >-
                        Código externo para integração. Deve ser único por
                        conta.
                      example: prod_premium_v2
      responses:
        '200':
          description: Produto atualizado
          content:
            application/json:
              schema:
                type: object
                unevaluatedProperties: false
                required:
                  - id
                  - object
                  - active
                  - created
                  - live_mode
                  - name
                properties:
                  id:
                    type: string
                    pattern: ^prod_[0-9a-z]{26}$
                    readOnly: true
                    description: >-
                      ID único do produto, no formato TypeID com prefixo
                      `prod_`.
                    example: prod_01h455vb4pex5vsknk084sn02q
                  object:
                    type: string
                    description: Tipo do objeto. Sempre 'product'.
                    enum:
                      - product
                    example: product
                  active:
                    type: boolean
                    description: Se o produto está disponível para compra.
                    example: true
                  created:
                    type: integer
                    format: int64
                    readOnly: true
                    description: Timestamp Unix de quando o produto foi criado.
                    example: 1680893993
                  live_mode:
                    type: boolean
                    description: >-
                      Indica ambiente de produção (true) ou sandbox (false).
                      Dados de sandbox são limpos periodicamente.
                    example: false
                  name:
                    type: string
                    description: Nome do produto.
                    example: Plano Premium
                  description:
                    type:
                      - string
                      - 'null'
                    nullable: true
                    description: Descrição do produto.
                    example: Acesso a todas as funcionalidades premium
                  external_code:
                    type:
                      - string
                      - 'null'
                    nullable: true
                    description: Código externo para integração. Deve ser único por conta.
                    example: prod_premium
        '404':
          description: Não encontrado
          content:
            application/problem+json:
              schema:
                type: object
                required:
                  - type
                  - status
                  - title
                  - detail
                  - code
                properties:
                  type:
                    type: string
                    description: URI que identifica o tipo de problema
                    format: uri
                    enum:
                      - https://problems-registry.smartbear.com/not-found
                  status:
                    type: integer
                    description: O código de status HTTP
                    format: int32
                    enum:
                      - 404
                  title:
                    type: string
                    description: O nome do status HTTP
                    enum:
                      - Not Found
                  detail:
                    type: string
                    description: Mensagem descritiva do erro
                  code:
                    type: string
                    description: Código de erro interno da API
                    enum:
                      - NOT_FOUND
                      - RESOURCE_MISSING
              examples:
                not_found:
                  summary: Recurso não encontrado
                  value:
                    type: https://problems-registry.smartbear.com/not-found
                    status: 404
                    title: Not Found
                    detail: The requested resource was not found
                    code: NOT_FOUND
                customer_not_found:
                  summary: Cliente não encontrado
                  value:
                    type: https://problems-registry.smartbear.com/not-found
                    status: 404
                    title: Not Found
                    detail: 'No such customer: ''019abc12-3456-7890-abcd-ef1234567890'''
                    code: RESOURCE_MISSING
        '422':
          description: Erro de validação
          content:
            application/problem+json:
              schema:
                type: object
                required:
                  - type
                  - status
                  - title
                  - detail
                  - code
                properties:
                  type:
                    type: string
                    description: >-
                      URL que identifica o tipo de erro ocorrido. Útil para
                      tratamento programático de erros.
                    example: https://problems-registry.smartbear.com/validation-error
                    format: uri
                    maxLength: 1024
                  status:
                    type: integer
                    description: >-
                      Código de status HTTP da resposta. Corresponde ao status
                      code retornado na requisição.
                    example: 400
                    format: int32
                    minimum: 100
                    maximum: 599
                  title:
                    type: string
                    description: >-
                      Título curto e descritivo do erro. Ideal para exibir em
                      logs ou mensagens de erro genéricas.
                    example: Bad Request
                    maxLength: 1024
                  detail:
                    type: string
                    description: >-
                      Mensagem detalhada do erro específico para esta
                      requisição. Use esta mensagem para entender o que deu
                      errado.
                    example: O campo email é obrigatório e não foi informado.
                    maxLength: 4096
                  instance:
                    type: string
                    description: >-
                      Identificador único desta ocorrência de erro. Forneça este
                      valor ao solicitar suporte para facilitar o debug.
                    example: req_abc123def456
                    maxLength: 1024
                  code:
                    type: string
                    description: >-
                      Código de erro interno da API. Útil para mapear tipos
                      específicos de erros no seu código.
                    example: VALIDATION_ERROR
                    maxLength: 50
                  errors:
                    type: array
                    description: >-
                      Lista de erros de validação específicos. Presente quando
                      múltiplos campos falham na validação.
                    maxItems: 1000
                    items:
                      type: object
                      description: >-
                        Detalhes sobre um erro específico de validação. Ajuda a
                        identificar qual campo e valor causaram o erro.
                      required:
                        - detail
                      properties:
                        detail:
                          type: string
                          description: >-
                            Mensagem específica sobre o erro de validação deste
                            campo.
                          example: O campo email não é um endereço de e-mail válido.
                          maxLength: 4096
                        pointer:
                          type: string
                          description: >-
                            Caminho JSON para o campo no corpo da requisição que
                            causou o erro.
                          example: /customer/email
                          maxLength: 1024
                        parameter:
                          type: string
                          description: Nome do parâmetro (query ou path) que causou o erro.
                          example: customer_id
                          maxLength: 1024
                        header:
                          type: string
                          description: Nome do cabeçalho HTTP que causou o erro.
                          example: Authorization
                          maxLength: 1024
                        code:
                          type: string
                          description: >-
                            Código adicional para identificar o contexto
                            específico do erro.
                          example: INVALID_FORMAT
                          maxLength: 50
              examples:
                validation_error:
                  summary: Erro de validação de campos
                  value:
                    type: https://problems-registry.smartbear.com/validation-error
                    status: 422
                    title: Unprocessable Entity
                    detail: The request payload contains validation errors
                    code: VALIDATION_ERROR
                    errors:
                      - detail: Name can't be blank
                        pointer: /customer/name
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >
        A chave de API usada para autenticar a requisição e identificar a sua
        conta.


        **Exemplo:** `Authorization: ApiKey my-secure-key`

````