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

# Assinar canal

> Adicione um canal à assinatura existente após o pagamento ser concluído no painel

## Conceituação

Vincula um canal à assinatura Stripe ativa da conta. O canal é **adicionado automaticamente** à assinatura existente e uma cobrança proporcional ao período restante do ciclo é incluída na próxima fatura.

<Note>
  O pagamento é realizado previamente pelo usuário no painel do {projectName}. Este endpoint deve ser chamado após a conclusão do checkout no painel para ativar o canal via API.
</Note>

<Warning>
  Este endpoint requer a role **ENTERPRISE** na sua conta.
</Warning>

Exemplo de resposta:

```json theme={null}
{
  "type": "SUBSCRIPTION_UPDATED",
  "message": "Canal ativo. Cobrança proporcional será incluída na próxima fatura."
}
```

<Note>
  O `channelId` é obtido através do endpoint [Criar canal](/channels/create-channel).
</Note>


## OpenAPI

````yaml pt/channels/openapi-subscribe.json GET /v1/channels/{channelId}/subscribe
openapi: 3.1.0
info:
  title: Hub Message - Assinar Canal
  version: 1.0.0
servers:
  - url: https://api.hubmessage.io
security:
  - bearerAuth: []
paths:
  /v1/channels/{channelId}/subscribe:
    get:
      tags:
        - Canais
      summary: Assinar canal (ENTERPRISE)
      description: >-
        Vincula o canal à assinatura Stripe ativa da conta. O canal é adicionado
        automaticamente à assinatura existente e uma cobrança proporcional ao
        período restante é incluída na próxima fatura. O pagamento deve ter sido
        concluído previamente pelo usuário no painel do Hub Message. Requer role
        **ENTERPRISE**.
      operationId: subscribeChannel
      parameters:
        - name: channelId
          in: path
          required: true
          description: ID do canal (obtido via Criar canal)
          schema:
            type: string
            example: 019E4C54B1B375A28970B605CA9B03C3
      responses:
        '200':
          description: Canal vinculado à assinatura com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscribeResponse'
              example:
                type: SUBSCRIPTION_UPDATED
                message: >-
                  Canal ativo. Cobrança proporcional será incluída na próxima
                  fatura.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Canal não encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 404
                message: Channel not found
        '422':
          description: >-
            Regra de negócio violada. Possíveis causas:


            - `ENTERPRISE role required` — conta sem role ENTERPRISE

            - `CREDIT_LIMIT_EXCEEDED` — limite de crédito da conta atingido

            - `SUBSCRIPTION_TERMINATED` — assinatura encerrada, não é possível
            adicionar canais
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                enterpriseRequired:
                  summary: Conta sem role ENTERPRISE
                  value:
                    error: 422
                    message: This action requires ENTERPRISE role
                creditLimit:
                  summary: Limite de crédito atingido
                  value:
                    error: 422
                    message: CREDIT_LIMIT_EXCEEDED
                terminated:
                  summary: Assinatura encerrada
                  value:
                    error: 422
                    message: SUBSCRIPTION_TERMINATED
components:
  schemas:
    SubscribeResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - SUBSCRIPTION_UPDATED
          description: Indica que o canal foi adicionado à assinatura com sucesso
          example: SUBSCRIPTION_UPDATED
        message:
          type: string
          description: Mensagem informativa para exibir ao usuário
          example: Canal ativo. Cobrança proporcional será incluída na próxima fatura.
    Error:
      type: object
      properties:
        error:
          type: integer
        message:
          type: string
  responses:
    Unauthorized:
      description: Token inválido ou ausente.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 401
            message: Unauthorized
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Secret Key gerada no painel de Segurança do Hub Message

````