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

# Get products by filter

> Lista produtos acessiveis para as empresas da credencial.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/product
openapi: 3.1.1
info:
  title: Veepag API
  description: >-
    API publica da Veepag para transacoes, clientes, assinaturas, produtos,
    cobrancas e alertas.


    Autentique as chamadas com o header `apiKey` no formato `keyId.secret` ou
    com o header `token` contendo um JWT valido.

    Use o ambiente de sandbox para testes e producao apenas depois da
    homologacao.
  version: 1.0.0
  contact: {}
servers:
  - url: https://sandbox.api.veepag.com
    description: Sandbox
  - url: https://api.veepag.com
    description: Produção
security:
  - api_key: []
  - token: []
tags:
  - name: Transaction
    description: >-
      Pagamentos avulsos, captura, cancelamento, consulta e exportacao de
      transacoes.
  - name: Client
    description: Cadastro, atualizacao e consulta de clientes.
  - name: Subscription
    description: Criacao, consulta, atualizacao e cancelamento de assinaturas.
  - name: Product
    description: Configuracao de produtos, precos e regras de cobranca.
  - name: Charge
    description: Criacao, pagamento, cancelamento e conciliacao de cobrancas.
  - name: Alert
    description: Consulta e tratamento de alertas Ethoca/Visa.
paths:
  /v1/product:
    get:
      tags:
        - Product
      summary: Get products by filter
      description: Lista produtos acessiveis para as empresas da credencial.
      operationId: ProductController_getProducts
      parameters:
        - name: id
          required: false
          in: query
          description: Product ID
          schema:
            type: string
        - name: companyIds
          required: true
          in: query
          description: Company IDs (one or many)
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Produtos acessiveis.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Product'
              example: []
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error_messages:
                  - msg: Payload invalido.
                    type: field
                    path: companyId
                    location: body
                code: ZodValidationException
                path: /v1/product
                metadata: {}
        '401':
          description: Credencial ausente ou invalida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error_messages:
                  - msg: Unauthorized.
                code: unauthorized
                path: /v1/product
                metadata: {}
        '403':
          description: Credencial sem acesso ao recurso ou empresa solicitada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error_messages:
                  - msg: Forbidden.
                code: forbidden
                path: /v1/product
                metadata: {}
        '500':
          description: Erro interno nao mapeado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error_messages:
                  - msg: Unknown server error.
                code: unknown_server_error
                path: /v1/product
                metadata: {}
      security:
        - api_key: []
        - token: []
components:
  schemas:
    Product:
      type: object
      properties:
        _id:
          type: string
          description: ID do produto.
        companyId:
          type: string
          description: ID da empresa dona do produto.
        active:
          type: boolean
          description: Indica se o produto esta ativo.
        deleted:
          type: boolean
          description: Indica exclusao logica do produto.
        product:
          type: object
          additionalProperties: true
          description: Dados comerciais do produto, como title e price.
        charge:
          type: object
          additionalProperties: true
          description: Regras de cobranca do produto.
        setting:
          type: object
          additionalProperties: true
          description: Configuracoes gerais do produto.
        unsubscription:
          type: object
          properties:
            type:
              $ref: '#/components/schemas/ProductUnsubscriptionType'
            overdueDays:
              type: integer
              minimum: 0
          description: Regra de cancelamento vinculada ao produto.
    ErrorResponse:
      type: object
      properties:
        error_messages:
          type: array
          items:
            $ref: '#/components/schemas/ErrorMessage'
        code:
          type: string
          example: unauthorized
        path:
          type: string
          example: /v1/transaction
        metadata:
          type: object
          additionalProperties: true
    ProductUnsubscriptionType:
      type: string
      enum:
        - OVERDUE_DAYS
        - NEVER
        - CARD_ATTEMPTS
    ErrorMessage:
      type: object
      properties:
        msg:
          type: string
          example: Unauthorized.
        type:
          type: string
          example: field
        path:
          type: string
          example: companyId
        location:
          type: string
          example: body
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: apiKey
      description: API key no formato keyId.secret.
    token:
      type: apiKey
      in: header
      name: token
      description: JWT valido. O token confirmado na codebase tem validade de 14 dias.

````