> ## 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.

# Bloquear linha

> Bloqueia uma linha telefônica pelo ID. Bloquear uma linha já bloqueada não tem efeito e retorna o estado atual.



## OpenAPI

````yaml api-reference/v3/openapi.json POST /api/v3/phone-accounts/{id}/block
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/{id}/block:
    post:
      tags:
        - Public API
      description: >-
        Bloqueia uma linha telefônica pelo ID. Bloquear uma linha já bloqueada
        não tem efeito e retorna o estado atual.
      operationId: publicBlockPhoneAccountV3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                reason:
                  type: string
                  enum:
                    - theft
                    - loss
                    - misuse
                    - no-usage
                    - whatsapp-ban
                    - unnecessary
                    - technical-issues
                    - trip-ended
                    - other
                  description: Motivo do bloqueio da linha.
                  example: theft
                otherReason:
                  description: >-
                    Detalhamento do motivo. Obrigatório quando reason for
                    "other".
                  example: Perda de acesso ao aparelho
                  type: string
                  minLength: 1
              required:
                - reason
              additionalProperties: false
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                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
        '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
                      - phone-account-invalid-status
                      - phone-account-invalid-provider
                      - 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

````