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

# Listar linhas

> Lista as linhas telefônicas da empresa, ordenadas por data de criação decrescente (`createdAt`), com desempate por ID crescente.



## OpenAPI

````yaml api-reference/v3/openapi.json GET /api/v3/phone-accounts
openapi: 3.1.0
info:
  version: v3
  title: Salvy API
  x-logo:
    url: web/logo.png
servers:
  - url: https://api.salvy.com.br
    description: Salvy API URL
security:
  - bearerAuth: []
tags:
  - name: Public API
  - name: Outgoing Webhooks
paths:
  /api/v3/phone-accounts:
    get:
      tags:
        - Public API
      description: >-
        Lista as linhas telefônicas da empresa, ordenadas por data de criação
        decrescente (`createdAt`), com desempate por ID crescente.
      operationId: publicListPhoneAccountsV3
      parameters:
        - name: page
          in: query
          required: true
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            default: 1
            description: Número da página, iniciando em 1.
            example: 1
            type: integer
            minimum: 1
            maximum: 9007199254740991
        - name: pageSize
          in: query
          required: true
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            default: 50
            description: Tamanho da página. Máximo de 200.
            example: 50
            type: integer
            minimum: 1
            maximum: 200
        - name: status
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra pelo status público da linha. Repita o parâmetro para
              incluir múltiplos valores (`?status=active&status=blocked`).
            example: active
            type: array
            items:
              type: string
              enum:
                - pending
                - available
                - active
                - partial-block
                - blocked
                - canceled
        - name: productType
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra pelo tipo de produto da linha. Repita o parâmetro para
              incluir múltiplos valores.
            example: mobile
            type: array
            items:
              type: string
              enum:
                - mobile
                - mobile-did
                - landline-did
                - global
        - name: phoneNumber
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra pelo número que o cliente reconhece como sendo da linha, no
              formato E.164: casa o número ativo na linha, o número escolhido ou
              a portar antes da ativação, e o número de uma portabilidade em
              andamento ou que falhou. Uma linha pode ser encontrada por um
              número que ela não exibe — por exemplo uma linha cancelada cuja
              portabilidade não se concluiu —, então compare com `phoneNumber`
              no resultado.
            example: '+5541999887766'
            type: string
        - name: employeeId
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra pelas linhas associadas aos colaboradores informados.
              Repita o parâmetro para incluir múltiplos valores
              (`?employeeId=...&employeeId=...`).
            type: array
            items:
              type: string
        - name: costCenterId
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra pelo centro de custo da linha. Repita o parâmetro para
              incluir múltiplos valores. Use `__null__` para filtrar linhas sem
              centro de custo definido.
            example: 0198c2f1-3815-45b7-9e60-8e137cad845c
            type: array
            items:
              anyOf:
                - type: string
                - type: string
                  const: __null__
        - name: createdAtFrom
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra linhas criadas a partir desta data (inclusivo), em formato
              ISO8601.
            example: '2026-05-01T00:00:00Z'
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        - name: createdAtTo
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra linhas criadas até esta data (exclusivo), em formato
              ISO8601.
            example: '2026-06-01T00:00:00Z'
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        - name: activatedAtFrom
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra linhas ativadas a partir desta data (inclusivo), em formato
              ISO8601.
            example: '2026-05-01T00:00:00Z'
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        - name: activatedAtTo
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra linhas ativadas até esta data (exclusivo), em formato
              ISO8601.
            example: '2026-06-01T00:00:00Z'
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        - name: canceledAtFrom
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra linhas canceladas a partir desta data (inclusivo), em
              formato ISO8601.
            example: '2026-05-01T00:00:00Z'
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        - name: canceledAtTo
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Filtra linhas canceladas até esta data (exclusivo), em formato
              ISO8601.
            example: '2026-06-01T00:00:00Z'
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        - name: sortBy
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: 'Campo usado para ordenar o resultado. Padrão: `createdAt`.'
            example: createdAt
            type: string
            enum:
              - createdAt
              - activatedAt
              - name
        - name: sortOrder
          in: query
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: 'Direção da ordenação. Padrão: `desc`.'
            example: desc
            type: string
            enum:
              - asc
              - desc
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Identificador único da linha.
                          example: 0198c2f1-3815-45b7-9e60-8e137cad845c
                          title: UUID
                          type: string
                          examples:
                            - 123e4567-e89b-12d3-a456-426614174000
                            - 123e4567-e89b-12d3-a456-426614174001
                        companyId:
                          description: ID da empresa dona da linha.
                          example: 0198c2f1-3815-45b7-9e60-8e137cad845c
                          title: UUID
                          type: string
                          examples:
                            - 123e4567-e89b-12d3-a456-426614174000
                            - 123e4567-e89b-12d3-a456-426614174001
                        productType:
                          type: string
                          enum:
                            - mobile
                            - mobile-did
                            - global
                          description: >-
                            Tipo do produto da linha. Novos tipos poderão ser
                            adicionados sem mudança de versão — cheque este
                            campo ao consumir.
                          example: mobile
                        simType:
                          type: string
                          enum:
                            - physical
                            - esim
                            - virtual
                          description: >-
                            Tipo de chip da linha: "physical" (chip físico),
                            "esim" (eSIM) ou "virtual" (linhas de número
                            virtual, como as do tipo mobile-did). Novos valores
                            poderão ser adicionados sem mudança de versão —
                            cheque este campo ao consumir.
                          example: esim
                        name:
                          description: >-
                            Nome da linha, definido pelo cliente para facilitar
                            a gestão.
                          example: Maria - Vendas
                          type:
                            - string
                            - 'null'
                        phoneNumber:
                          anyOf:
                            - title: PhoneNumberE164
                              type: string
                              description: >-
                                Phone number in E.164 format. Supports Brazilian
                                numbers (+55).
                              examples:
                                - '+5511999999999'
                                - '+551139999999'
                            - type: 'null'
                          description: >-
                            Número que o cliente reconhece como sendo dessa
                            linha, formatado conforme o padrão internacional
                            E.164. Nulo enquanto a linha ainda não tem número
                            definido.
                          example: '+5541999887766'
                        redirectPhoneNumber:
                          anyOf:
                            - title: PhoneNumberE164
                              type: string
                              description: >-
                                Phone number in E.164 format. Supports Brazilian
                                numbers (+55).
                              examples:
                                - '+5511999999999'
                                - '+551139999999'
                            - type: 'null'
                          description: >-
                            Número para o qual as chamadas recebidas nesta linha
                            são redirecionadas. Nulo quando a linha não tem
                            redirecionamento configurado.
                          example: '+5541999887766'
                        redirectExpiresAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                            - type: 'null'
                          description: >-
                            Data e hora em que o redirecionamento configurado
                            para esta linha expira. Nulo quando não há expiração
                            definida ou quando a linha não tem redirecionamento
                            configurado.
                          example: '2026-09-01T00:00:00Z'
                        status:
                          type: string
                          enum:
                            - pending
                            - available
                            - active
                            - partial-block
                            - blocked
                            - canceled
                          description: >-
                            Status público da linha. "available" indica uma
                            linha disponível para uso, com a cobrança iniciando
                            após a ativação. Novos valores podem ser adicionados
                            a este enum sem uma mudança de versão da API — trate
                            qualquer valor não reconhecido como "blocked".
                          example: active
                        dataBalanceGB:
                          description: >-
                            Saldo de dados restante, em GB. Nulo quando a linha
                            não está ativa ou o valor ainda não pôde ser medido.
                            Nunca use 0 como indicador de ausência de valor: um
                            0 real significa linha ativa, medida, com dados
                            esgotados.
                          example: 32.5
                          type:
                            - number
                            - 'null'
                        dataBalanceUpdatedAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                            - type: 'null'
                          description: >-
                            Data e hora da última atualização do saldo de dados.
                            Nulo quando não há saldo medido.
                          example: '2026-08-03T14:00:00Z'
                        activatedAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                            - type: 'null'
                          description: >-
                            Data e hora de ativação da linha. Nulo enquanto a
                            linha ainda não foi ativada.
                          example: '2026-05-10T13:22:04Z'
                        canceledAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                            - type: 'null'
                          description: >-
                            Data e hora de cancelamento da linha. Nulo enquanto
                            a linha não foi cancelada.
                          example: '2026-07-15T09:00:00Z'
                        createdAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          description: Data e hora de criação da linha.
                          example: '2026-05-08T11:02:33Z'
                        costCenter:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  description: >-
                                    Identificador único do centro de custo da
                                    linha.
                                  example: 0198c2f1-3815-45b7-9e60-8e137cad845c
                                  title: UUID
                                  type: string
                                  examples:
                                    - 123e4567-e89b-12d3-a456-426614174000
                                    - 123e4567-e89b-12d3-a456-426614174001
                                name:
                                  type: string
                                  description: Nome do centro de custo da linha.
                                  example: TI-Curitiba
                              required:
                                - id
                                - name
                              additionalProperties: false
                            - type: 'null'
                          description: >-
                            Centro de custo da linha; detalhes em GET
                            /cost-centers/{id}. Nulo quando a linha não tem
                            centro de custo definido.
                        employee:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  description: >-
                                    Identificador único do colaborador associado
                                    à linha.
                                  example: 0197aa3e-3815-45b7-9e60-8e137cad845c
                                  title: UUID
                                  type: string
                                  examples:
                                    - 123e4567-e89b-12d3-a456-426614174000
                                    - 123e4567-e89b-12d3-a456-426614174001
                                fullName:
                                  type: string
                                  description: Nome do colaborador associado à linha.
                                  example: Maria de Souza
                                workEmail:
                                  anyOf:
                                    - title: Email
                                      type: string
                                      description: A valid email address.
                                      examples:
                                        - user@example.com
                                        - admin@domain.org
                                        - info@company.net
                                    - type: 'null'
                                  description: >-
                                    E-mail profissional do colaborador associado
                                    à linha. Nulo quando não há e-mail
                                    profissional cadastrado.
                                  example: maria.souza@empresa.com.br
                              required:
                                - id
                                - fullName
                                - workEmail
                              additionalProperties: false
                            - type: 'null'
                          description: >-
                            Colaborador associado à linha; detalhes em GET
                            /employees/{id}. Nulo quando a linha não tem
                            colaborador associado.
                        customFields:
                          type: array
                          items:
                            type: object
                            properties:
                              label:
                                type: string
                              type:
                                type: string
                                enum:
                                  - text
                                  - select
                              value:
                                type: string
                            required:
                              - label
                              - type
                              - value
                            additionalProperties: false
                          description: Campos customizados associados à linha.
                        plan:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  description: >-
                                    Identificador único do plano contratado pela
                                    linha.
                                  example: 0198c2f1-3815-45b7-9e60-8e137cad845c
                                  title: UUID
                                  type: string
                                  examples:
                                    - 123e4567-e89b-12d3-a456-426614174000
                                    - 123e4567-e89b-12d3-a456-426614174001
                                name:
                                  type: string
                                  description: Nome do plano contratado pela linha.
                                  example: Plano 20GB
                                priceCents:
                                  type: number
                                  description: >-
                                    Valor mensal do plano para a empresa, em
                                    centavos.
                                  example: 4500
                                availableDataAmountGB:
                                  type: number
                                  description: >-
                                    Quantidade de dados incluída no plano, em
                                    GB.
                                  example: 20
                              required:
                                - id
                                - name
                                - priceCents
                                - availableDataAmountGB
                              additionalProperties: false
                            - type: 'null'
                          description: >-
                            Plano contratado pela linha. Toda linha tem um
                            plano; o nulo é excepcional, mas trate o campo como
                            opcional mesmo assim.
                      required:
                        - id
                        - companyId
                        - productType
                        - simType
                        - name
                        - phoneNumber
                        - redirectPhoneNumber
                        - redirectExpiresAt
                        - status
                        - dataBalanceGB
                        - dataBalanceUpdatedAt
                        - activatedAt
                        - canceledAt
                        - createdAt
                        - costCenter
                        - employee
                        - customFields
                        - plan
                      additionalProperties: false
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        example: 1
                      pageSize:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        example: 50
                      totalCount:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        example: 123
                      totalPages:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        example: 3
                    required:
                      - page
                      - pageSize
                      - totalCount
                      - totalPages
                    additionalProperties: false
                required:
                  - data
                  - pagination
                additionalProperties: false
        '401':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - unauthorized
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '403':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - forbidden
                      - insufficient-scope
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '404':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - resource-not-found
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '413':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - payload-too-large
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '422':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - input-validation-error
                      - unprocessable-entity
                      - company-not-active
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        message:
                          type: string
                      required:
                        - key
                        - message
                      additionalProperties: false
                required:
                  - code
                  - message
                additionalProperties: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - unknown
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
      deprecated: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: key

````